EC2 Instance Connect Endpointを使ってみた

AWS re:Inforce 2023にて、EC2 Instance Connectの新機能である「EC2 Instance Connect Endpoint」が発表されました。

簡単に言うとパブリックIPv4アドレスを付与していないプライベートなEC2にSSH,RDP接続できるようになりました。

今回はEC2 Instance Connect Endpointを使ってEC2インスタンスにSSH接続してみます。

EC2 Instance Connectって何でしたっけ

EC2インスタンスに接続するには4種類の方法があり、そのうちの一つです。

EC2 Instance Connect:鍵設定なしでマネジメントコンソールからEC2へSSH接続が可能です。ただし、パブリックサブネットに配置されたEC2のみが対象です。

EC2 Instance Connect Endpoint:鍵設定なしでマネジメントコンソールからEC2へSSH接続が可能です。プライベートサブネットのEC2(パブリックIPアドレスを付与していない)に対しても対象にできます。 ← New!!

事前に準備するもの

早速EC2 Instance Connect Endpointを使ってみましょう。

  • EC2インスタンスを準備する
  • IAM で EC2 Instance Connect Endpoint の作成と接続を許可する

EC2インスタンスの作成

動作検証のためプライベートサブネットに配置します。事前準備なので細かい説明は割愛します。

EC2 Instance Connect Endpoint 作成 事前準備EC2作成

IAM で EC2 Instance Connect Endpoint の作成と接続を許可する

IAMアカウントでマネジメントコンソールを利用している場合は、新しい機能を利用する際にIAMの設定が必要です。

EC2 Instance Connect Endpoint を作成や削除を行う際に必要なIAMポリシーはこちら。

  • ec2:CreateInstanceConnectEndpoint
  • ec2:CreateNetworkInterface
  • ec2:CreateTags
  • iam:CreateServiceLinkedRole
  • ec2:DescribeInstanceConnectEndpoints
  • ec2:DeleteInstanceConnectEndpoint

EC2 Instance Connect Endpoint を設定する

準備ができたら設定を進めていきます。設定が必要なのは2点です。

  1. EC2 Instance Connect Endpoint の作成
  2. セキュリティグループの設定

EC2 Instance Connect Endpoint はサブネットを指定して設定します。下記の図のようにプライベートサブネットに配置するのが主な用途になります。

サブネットにEC2 Instance Connect Endpoint を配置したら「VPC」「クライアントIPアドレス」のどちらかからプライベートサブネットにアクセスできるようにセキュリティグループを更新します。

EC2 Instance Connect Endpoint 作成の概要
EC2 Instance Connect Endpoint を使用した、パブリック IPv4 アドレスを必要としないインスタンスへの接続

それでは具体的な手順に入ってきます。

EC2 Instance Connect Endpoint の作成

EC2 Instance Connect Endpoint の設定は、「VPC」ダッシュボードの中の「エンドポイント」のメニューにあります。

EC2 Instance Connect Endpoint 作成 エンドポイント作成

ここでエンドポイントを作成します。

サービスカテゴリの中に「EC2 Instance Connect Endpoint」という設定があります。

EC2 Instance Connect Endpoint 作成 エンドポイント作成

EC2 Instance Connect Endpoint はVPCとサブネットを指定して作成する必要があります。

EC2 Instance Connect Endpoint 作成 VPCの設定

追加設定

こちらは EC2 Instance Connect Endpoint への接続を「EC2 Instance Connect Endpoint 作成時のクライアントIPアドレスに制限」するものです。

チェックを外すと「VPCからEC2 Instance Connect Endpointへ接続」する経路になります。

まずはチェックを外してVPCから接続する手順で確認していきます。

EC2 Instance Connect Endpoint 作成 サブネットの設定

これでEC2 Instance Connect Endpoint の設定は完了です。

非常に簡単です。

セキュリティグループの設定

設定したEC2 Instance Connect Endpoint へ接続するためにセキュリティグループの設定を追加します。

Preserve Clinet IP の設定は行っていないので、VPCのIPアドレスからプライベートサブネットへのインバウンドルールを設定します。

EC2 Instance Connect Endpoint セキュリティグループの設定追加

EC2インスタンスへ接続

設定が完了しましたので、EC2インスタンスへの接続テストをしてみます。

EC2 Instance Connect Endpoint EC2インスタンス一覧

ECインスタンスへの接続は4つの方法があります。

  • EC2 Instance Connect
  • セッションマネージャー
  • SSHクライアント
  • E2シリアルコンソール

EC2 Instance Connect Endpoint は EC2 Instance Connect のタブの中から選択できます。

EC2 Instance Connect Endpoint EC2インスタンスへの接続設定画面

インスタンスにパブリックIPv4アドレスが設定されていないというメッセージが表示されていますね。通常のEC2 Instance Connect ではこのままでは接続できません。

しかし今回作成した EC2 Instance Connect Endpoint を使うとこのまま接続ができます。

EC2 Instance Connect Endpoint EC2インスタンスへの接続

ユーザ名などの設定を行い、接続すると

EC2 Instance Connect Endpoint 接続完了

EC2インスタンスへログインできました!

Preserve Client IPの設定をした場合

次にPreserve Client IPの設定を行った場合の動作を確認してみましょう。

Preserve Client IPとは、、

設定時のIPアドレスを保存し、このIPアドレスのみを接続元のクライアントIPアドレスをして許可します。

EC2 Instance Connect Endpoint作成時のクライアントIPアドレスでのみEC2への接続が可能になります。

EC2 Instance Connect Endpointの作成

詳細は再掲になるので割愛します。Preserve Client IPを設定すると赤枠部分が「はい」と表示されるようになります。

どのIPアドレスが設定されているかはマネジメントコンソール上では表示されません。

EC2 Instance Connect Endpoint の設定内容

セキュリティグループの設定

クライアント側のIPアドレスを確認します。仮に「106.100.100.100」だとしましょう。

EC2 Instance Connect Endpoint クライアントIPアドレスの確認

プライベートサブネットのセキュリティグループに上記IPアドレスのインバウンドルールを設定します。

EC2 Instance Connect Endpoint セキュリティグループの設定 クライアントIPアドレス

EC2インスタンスへ接続

こちらも無事にアクセスできました。

EC2 Instance Connect Endpoint 接続完了

同じ端末でもIPアドレスを変更してEC2 Instance Connect Endpoint作成時のクライアントIPアドレスと異なる設定にした場合は、アクセスエラーになります。

EC2 Instance Connect Endpoint 作成時の接続エラー画面

補足

EC2 Instance Connect Endpoint 作成上限

EC2 Instance Connect Endpointはサブネットに対し1つのみ設定可能なようです。なので「Preserve Client IP 設定あり」「Preserve Client IP 設定なし」など2つのEC2 Instance Connect Endpoint を持つことはできません。

EC2 Instance Connect Endpoint 作成時の重複エラー画面

所感

プライベートサブネットに配置したEC2インスタンスに簡単に接続できる点はとても便利だと思います。

ただし、プライベートサブネットにもセキュリティグループの設定が必要であり「VPC」「クライアントIPアドレス」からのインバウンドルールを設定する必要があります。

セキュリティグループを追加で設定するという点はセキュリティ的には気になるところ。

コメントを残す