カテゴリー
AWS EC2 System Manager(SSM)

AWS SSMセッションマネージャーでEC2を操作する②CLI編

今回のゴール

前回は、コンソールからSSM経由でEC2に接続しましたが、今回はAWS CLIからSSMを使用してEC2に接続します。

接続する方法は下記の2パターンを試します。

  • CLIからSSM経由で接続
  • SSMのポートフォワーディングを利用してSSHでEC2に接続

前回はコンソールからの接続は下記を参照ください。

下準備

AWS CLIとSession Manage Pluginをインストールします。

【AWS CLI】

AWS CLI のインストール、更新、およびアンインストール

【Session Manage Plugin】

(オプション) AWS CLI 用の Session Manager plugin をインストールする

今回はSSMのポートフォワーディング利用したSSHでの接続も行いますので、下記の設定も行いました。

ステップ 8: (オプション) を通じて SSH 接続を有効にする

設定は割愛しますが、AWSのユーザーやポリシーは適切なものが設定されている事とします。

また、今回はwindows10からEC2へ接続する事とします。

EC2(Linux)の操作

AWS CLIからのSSM

AWS CLIを利用してSSM経由でLinuxのEC2を操作します。
この方法でEC2に接続すると、コマンドの履歴をS3やCloudWatchLogsに保存する事ができます。(要設定)

SSMを利用してログインするので、EC2へのログインはssm-userとなります。

PowerShellを起動して下記コマンドを実行します。

IAMユーザー名とEC2インスタンスIDを指定します。

aws ssm --profile username start-session --target i-xxxxx

今回はMFAを設定しているので、MFAのコードを入力します。
インスタンスに接続できました

Enter MFA code for arn:aws:iam::000000000:mfa/xxxxx:

Starting session with SessionId: botocore-session-xxxxx-yyyyy
sh-4.2$
SSMのポートフォワーディング利用したSSH

EC2へのログインはec2-userで可能です。
この方法はSSHはもちろんSCPも使用できます。

※SSMはSSHで暗号化された通信をトンネリングするだけなので、操作ログは取得不可となります。

ssh -i .\my-key-pair.pem ec2-user@i-XXXXX -v
Enter MFA code for arn:aws:iam::000000000:mfa/xxxxx:

MFAのコードを入力します。
インスタンスに接続できました。

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-10-0-0-200 ~]$

この方法ではSCPも利用できます。

scp -i .\my-key-pair.pem .\xxx.txt ec2-user@i-XXXXX:~/

EC2(Windows)の操作

自分がドメイン参加していないリモート端末からPowerShellでWindowsの管理をすることはほぼないので、RDP接続だけに絞ります。

SSMのポートフォワーディング利用したRDP

下記のコマンドを実行します。

aws ssm start-session --target i-XXXXX --document-name AWS-StartPortForwardingSession --parameters "portNumber=3389, localPortNumber=13389"

すると、接続待ちの状態になるので、

Starting session with SessionId: botocore-session-XXXXX-YYYYY
Port 13389 opened for sessionId botocore-session-XXXXX-YYYYY.
Waiting for connections...

リモートデスクトップで接続します。

RDPで接続ができました。
また、PowerShellにも接続されたメッセージが表示されました。

Connection accepted for session [botocore-session-XXXXX-YYYYY]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です