プライベートサブネットに配置したEC2にAWS Systems Manager Session Managerを使ってアクセスする
コンニチハ、千葉です。
SSMのSession Managerを利用することで、ターミナルにアクセスできます。これは、踏み台をなくすチャンスです。 アクセス対象のEC2は、パブリックサブネットだったり、プライベートサブネットだったりに配置されていると思います。
プライベートサブネットに配置されたEC2へ、Session Managerを利用してアクセスするにはちょっとしたコツが必要です。 基本的には、AWSのAPIエンドポイントはグローバルIPを持っており、インターネット経由でアクセスが必要になります。つまり、デフォルト状態だと、プライベートサブネットに配置されたEC2はインターネット接続できないため、Session Managerも利用できません。NatGatewayを作成することで、インターネット向けの通信を通すことができるのでこれでもいいですが、インターネットアクセスせずに接続する方法があります。
それが、PrivateLinkです。今回は、PrivateLinkを使って、プライベートサブネットに配置されてEC2へ接続してみます。
やってみた
まず、ドキュメントを確認するとSSMを利用するには、以下のVPCエンドポイントが必要だと記載されています
- com.amazonaws.region.ssm: Systems Manager サービスのエンドポイント。
- com.amazonaws.region.ec2messages: このエンドポイントを通じて、Systems Manager は SSM エージェントから Systems Manager サービスへの呼び出しを行います。
- com.amazonaws.region.ec2: Systems Manager を使用して VSS 対応のスナップショットを作成する場合は、EC2 サービスへのエンドポイントがあることを確認します。EC2 エンドポイントが定義されていない場合、アタッチした EBS ボリュームを列挙する呼び出しは失敗し、Systems Manager コマンドが失敗します。Systems Manager を VSS 対応のスナップショットを作成する詳しい方法については、「Run Command を使用して、EBS ボリュームの VSS 有効化されたスナップショットを取得する」を参照してください。
- com.amazonaws.region.ssmmessages: This endpoint is required only if you are connecting to your instances through a secure data channel using Session Manager. For more information, see AWS Systems Manager Session Manager.
- com.amazonaws.ap-northeast-1.s3:Systems Manager は Amazon S3 出力ログをアップロードし、SSM エージェントを更新します。
今回は、Session Managerの利用のみなので、3以外のVPCエンドポイントを作成しました。合計4つです。
次にEC2を作成します。EC2はプライベートサブネットに配置し、以下をユーザーデータに入れました。これでログインせずにSSMエージェントをインストールします。また、適宜IAMロールにはSSMの権限を付与します。
#!/bin/bash cd /tmp sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm sudo systemctl start amazon-ssm-agent
実際に、接続できるか確認してみました。Systems Managerの画面から、セッションマネージャーを選択し、開始をクリックします。
プライベートサブネットに配置したEC2が見えています。セッションを開始してみましょう!
セッションを開始してみます。
接続できました!
最後に
プライベートサブネットに配置したEC2へ、Session Managerで接続できることを確認できました。これで、踏み台作らなくても良さそうです!
参考
*英語版で確認してください。最新情報は英語ドキュメントで確認です。テストに出ます。 https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-setting-up-vpc.html - https://aws.amazon.com/jp/premiumsupport/knowledge-center/install-ssm-agent-ec2-linux/