セッションマネージャ接続-Linux
概要(こんな時に有効です)
・パブリックサブネットでSSHのポートを開放しないでSSH接続したい場合
・プライベートサブネットに配置していて、外向けにSSHのポート開放ができない場合
■構成イメージ
環境準備サマリ
条件は以下の通り
①対象インスタンスにSSMAgentがインストールされていること
②対象インスタンスのロールに「AmazonSSMManagedInstanceCore」がアタッチされていること
③対象インスタンスがセッションマネージャで必要なエンドポイントと疎通可能なこと
④接続ユーザから対象インスタンスに接続可能なポリシーがアタッチされていること
⑤接続するクライアントPCにAWSCLI、SessionManagerPluginがセットアップされていること
AWS側の準備
SSMAgentのインストール
①対象インスタンスにSSMAgentのインストールします。
2016年11月以降のAMIにはデフォルトでSSMAgentがインストールされています。
もしインストールされていない場合は、下記URLを参考にインストールします。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/install-ssm-agent-ec2-linux/
ロールのアタッチ
① [AmazonSSMManagedInstanceCore]ポリシーをアタッチしたIAMロールを作成します。
② 作成したロールを、対象インスタンスにアタッチします。
IAMユーザの作成
①IAMユーザを作成します。作成済みの場合は②のみ実行します。
②IAMユーザには以下のポリシーをアタッチします。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:DescribeSessions", "ssm:GetConnectionStatus", "ssm:DescribeInstanceProperties", "ec2:DescribeInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:GetDocument" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }
エンドポイントとの疎通確認
■対象インスタンスからインターネットに接続できる場合。
設定不要です。
■対象インスタンスからインターネットに接続できない場合。
以下のVPCエンドポイントを作成して接続します。
com.amazonaws.region.ssm
com.amazonaws.region.ec2messages
com.amazonaws.region.ssmmessages
com.amazonaws.region.s3
クライアント側の準備
AWSCLI、SessionManagerPluginのインストール
①クライアントPCにAWSCLI、SessionManagerPluginをインストールします。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-windows.html
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html
AWSCLIでプロファイルの設定をします。
①[AWS Configure]コマンドで、IAMユーザで払いだしたアクセスキーとシークレットキーの登録をします。
接続確認①
AWSコンソールから接続
①AWSコンソールから[AWS Systems Manager]-[セッションマネージャ]を開きます。
以下省略
接続確認②
セッション開始コマンドの実行
①Powershellを起動し、以下の形式でコマンドを実行します。
aws ssm start-session --target [instance-id]
②Powershell内で、対象インスタンスにSSH接続が開始されます。