プライベートサブネットのEC2インスタンスにログインできるようにする。
はじめに
プライベートサブネットに存在するEC2に接続するため VPCエンドポイント経由でSystems ManagerのSession Managerでログインしてみました。
イメージ図
前提条件
今回はEC2は、初めからSSMエージェントがインストールされている Amazon Linux 2 を使用します。
手順
EC2を作成する。
プライベートサブネットにAmazon Linux2のインスタンスを作成します。
このときユーザーデータには SSMエージェントの起動および自動起動設定のコマンドを書いておきます。
#!/bin/bash sudo systemctl enable amazon-ssm-agent sudo systemctl start amazon-ssm-agent
EC2用のIAMロールを作成する。
ポリシー[AmazonEC2RoleforSSM]を付与したロールを作成します。
EC2にIAMロールを追加する。
先ほど作成したロールをEC2に付与します。
VPCエンドポイントに付与するセキュリティグループを作成する。
VPCエンドポイントに付与するセキュリティーグループを作成しておきます。
このときインバンドとしてEC2からのHTTPS通信を許可しておきます。
サービス[com.amazonaws.ap-northeast-1.ssm]用のVPCエンドポイントを作成する。
VPCのコンソールを開いて左のペインにある[エンドポイント]をクリックします。
エンドポイントの作成画面になるので以下を設定します。
- [サービス名] : com.amazonaws.ap-northeast-1.ssm
- [VPC] : EC2の存在する VPC ID
- [サブネット] : EC2の存在する サブネットID
- [プライベート DNS 名を有効にする] : チェックする。
- [セキュリティグループ] : 上で作成したセキュリティーグループを選択
VPCエンポイントを追加で二つ作成する。
以下の2つのサービスのそれぞれのエンドポイントを先ほどと同じ手順で作成します。
- com.amazonaws.ap-northeast-1.ec2messages
- com.amazonaws.ap-northeast-1.ssmmessages
結果確認
Systems Managerのマネージドインスタンスに、作成したEC2が存在すれば設定成功です。
※表示されていない場合はEC2の再起動を実施してみてください。
Session Managerでログインしてみる。
EC2インスタンスを選んでアクションから[Start Session]をクリックすれば、EC2にアクセスできます。
参考サイト
Systems Manager を使用してインターネットアクセスなしでプライベート EC2 インスタンスを管理できるように、VPC エンドポイントを作成するにはどうすればよいですか? https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-systems-manager-vpc-endpoints/
起動時に Amazon EC2 Linux インスタンスに AWS Systems Manager エージェント (SSM エージェント) をインストールする方法を教えてください。 https://aws.amazon.com/jp/premiumsupport/knowledge-center/install-ssm-agent-ec2-linux/