Session ManagerでプライベートEC2に接続

今回のテーマ

1つ前のブログでは、EC2 Instance Connect Endpointで、プライベートサブネットに配置したEC2に接続しました。

今回は、それより実務向きと思われるSession Managerでの接続手順を試してみたいと思います。

前提

前回までのブログで用意したプライベートサブネット上のEC2を使います。

手順

ロールを作成

IAMコンソールからロール、「ロールを作成」で進めます。

信頼されたエンティティタイプは「AWSのサービス」、ユースケースは「EC2」とします。

許可ポリシーには「AmazonSSMManagedInstanceCore」を選択します。

以上の設定で「ロールを作成」します。

EC2インスタンスにロールを設定

EC2コンソールから、プライベートEC2を選択し、アクション≫セキュリティ≫IAMロールを変更で、作成したロールを設定します。

VPCエンドポイント用のセキュリティグループを作成

インバウンドルールとして、HTTPS(443)で0.0.0.0/0で作成します。

VPCエンドポイントを作成

今回は3つのエンドポイントが必要になります。

VPCコンソールからエンドポイント、「エンドポイントを作成」で進めます。

サービスカテゴリは「AWSのサービス」で、サービスはそれぞれ以下の3つで作成します。

  • 〜.ssm
  • 〜.ec2messages
  • 〜.ssmmessages

VPCは今回のVPCを選択し、サブネットは該当するプライベートサブネットを全て選択します。

セキュリティグループは先ほどVPCエンドポイントように作成したものを指定します。

以上の設定で「エンドポイントを作成」します。

※同じ手順で3つ作成してください。

プライベートEC2のセキュリティグループ調整

VPCエンドポイントからのトラフィックを受けられるように、インバウンドルールを追加します。

HTTPS(443)で、VPCエンドポイント用のセキュリティグループを許可するインバウンドルールを追加します。

プライベートEC2にセッションマネージャーで接続

EC2コンソールから、対象のプライベートEC2に「接続」します。

接続方法は「セッションマネージャー」を選択します。

CLIの画面に遷移し、接続が確認できました。

まとめ

今回の手順で気になったのはエンドポイントのインバウンドルールが0.0.0.0/0で無制限という点です。

EC2コンソールのセグメントに限定する必要はありそうです。

また、今回の手順はプライベートサブネットのEC2に対するものであったため、VPCエンドポイントが必要でしたが、パブリックなEC2であればIAMロールの適用だけで接続可能なようです。

SSHを使えないなどの要件がある場合は、この方法が活用できると思いました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です