セッションマネージャーでEC2に接続できない時に確認した点
はじめに
こんにちは、川村です。
SSMを利用してEC2に接続しようとした時に、うまく接続できないことがありました。
その時に確認した点をまとめました。
前提
今回接続したEC2はプライベートサブネット配下にあり、NAT Gatewayやプロキシは無い環境となります。
確認した点
1 SSM Agentがインストールされているか
セッションマネージャーで接続するには、SSM Agentがインストールされている必要があります。
デフォルトでSSMAgentがインストールされているAMIは下記となります(2022/3/25時点)
- Amazon Linux
- Amazon Linux 2
- Amazon Linux 2 ECS に最適化されたベース AMIs
- SUSE Linux Enterprise Server(SLES) 12 と 15
- Ubuntu Server 16.04、18.04 および 20.04
- 2016 年 11 月以降に公開された Windows Server 2008-2012 R2 AMIs
- Windows Server 2016 および 2019
これら以外のAMIではユーザーデータなどで手動でSSMAgentをインストールする必要があります。
【初心者向け】RHELでSession Managerを使うためにユーザーデータでSSMエージェントをインストールしてみた
2 EC2のIAMロールにSession Managerのポリシーが紐づいているか
セッションマネージャーでアクセスするには、「AmazonSSMManagedInstanceCore」のIAMポリシーがEC2のIAMロールへ設定されている必要があります。
紐づいていない場合は紐付けを実施してください。
3 エンドポイントが設定されているか
何らかの手段でセッションマネージャー用のサービスエンドポイントにアウトバウンドで到達できる必要があります。
今回の前提においてはVPCエンドポイントが必要です。
[小ネタ] プライベートサブネットのインスタンスにAWS Systems Manager セッションマネージャーでSSHしてみたくなって
4 セキュリティグループのアウトバウンドが設定されているか
アウトバウンドを制限しているEC2の場合、作成したエンドポイントへのアウトバウンドが必要となります。
エンドポイント向けのHTTPSのアウトバウンドを設定してください。
(エンドポイントが所属するセキュリティグループを設定した場合)
おわりに
今回アクセスがうまくいかなかった時に、一つ一つ確認していてまとまっていたら便利だなと思ったのでまとめました。
この記事がどなたかのお役に立てば幸いです。