プライベートサブネット上のEC2インスタンス(プライベートインスタンス)へ
セッションマネージャーを利用してコンソール接続するための環境設定手順です。
本当に必要な最低限の設定を調べたので共有します。
セッションマネージャーとは
SSH&キーペアを使用せずSSMという通信を使用してブラウザでシェルの操作ができます。
EC2 Instance ConnectやSSHクライアントとは異なり、パブリックIPアドレスが不要です。

前提条件
・VPCおよびプライベートサブネットを作成済み
・EC2インスタンスを上記に作成済み
※SSMエージェントがインストールされているAMIを使用

「Amazon Linux 2」は含まれています。
・EC2インスタンスに紐づくセキュリティグループは
アウトバウンド:HTTPS(443)を許可。
通常はすべてのトラフィックを許可しているかと思います。
ステートフルですのでインバウンドは特に追加不要です。
環境設定
IAMロールを作成しEC2インスタンスにアタッチする
「AmazonSSMManagedInstanceCore」というポリシーを追加したIAMロールを作成します。
SSMを利用するにあたり、IAMロールアタッチ後はEC2インスタンスの再起動が必要と情報あります。
時間がかかるだけで再起動せずとも問題ないかもしれません。
VPCエンドポイントを作成する
プライベートサブネットにVPCエンドポイントを作成します。
なお「com.amazonaws.ap-northeast-1.ssm」「com.amazonaws.ap-northeast-1.ssmmessages」の2つのサービスが必要となりますが、
1つのエンドポイントに1サービスしか選択できないため、
2つエンドポイントを作成することになります。
(1)SSM用VPNエンドポイントで使用するセキュリティグループ
インバウンド:HTTPS(443) アウトバウンド:すべての通信 の
セキュリティグループを作成しておいてください。

(2)「com.amazonaws.ap-northeast-1.ssm」用エンドポイント
「VPC」にてエンドポイントを作成します。
(3)「com.amazonaws.ap-northeast-1.ssmmessages」用エンドポイント
デフォルトのセキュリティグループを使用したらどうなるか?
VPCエンドポイントを作成する際、セキュリティグループを指定しない場合、defaultが使用されます。
インバウンドを見て一見問題ないんじゃないの?と思いましたが、ソースが自セキュリティグループとなっています。
これではEC2インスタンスへHTTPS(443)の通信が届きません。
なのでこちらでHTTPS(443)を許可することもできます。










