~~NOCACHE~~ ## セッションマネージャ接続-Linux ### 概要(こんな時に有効です) ・パブリックサブネットでSSHのポートを開放しないでSSH接続したい場合 ・プライベートサブネットに配置していて、外向けにSSHのポート開放ができない場合 ■構成イメージ {{:Aws:SystemsManager:pasted:20210226-224824.png?nolink 800x0}} ### 環境準備サマリ 条件は以下の通り ①対象インスタンスに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ユーザで払いだしたアクセスキーとシークレットキーの登録をします。 https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/getting-started-restrict-access-examples.html#restrict-access-example-full-access ### 接続確認① #### AWSコンソールから接続 ①AWSコンソールから[AWS Systems Manager]-[セッションマネージャ]を開きます。 以下省略 ### 接続確認② #### セッション開始コマンドの実行 ①Powershellを起動し、以下の形式でコマンドを実行します。 aws ssm start-session --target [instance-id] ②Powershell内で、対象インスタンスにSSH接続が開始されます。 {{tag>AWS SystemsManager セッションマネージャ 実践的}}