~~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 セッションマネージャ 実践的}}