チュートリアル: EC2 Instance Connect を使用してインスタンスに接続するために必要な設定を完了する
Amazon EC2 コンソールで EC2 Instance Connect を使用してインスタンスに接続するには、まず、インスタンスに正常に接続するための前提条件の設定を完了する必要があります。このチュートリアルの目的は、前提条件となる設定を完了するためのタスクを順を追って説明することです。
チュートリアルの概要
このチュートリアルでは、以下の 4 タスクを完了します。
-
タスク 1: EC2 Instance Connect を使用するために必要なアクセス許可を付与する
まず、パブリックキーをインスタンスメタデータにプッシュできる IAM アクセス許可を含む IAM ポリシーを作成します。IAM ID (ユーザー、ユーザーグループ、またはロール) にこのポリシーをアタッチして、IAM ID がこれらのアクセス許可を取得できるようにします。
-
タスク 2: EC2 Instance Connect サービスからインスタンスへのインバウンドトラフィックを許可する
次に、EC2 Instance Connect サービスからインスタンスへのトラフィックを許可するセキュリティグループを作成します。これは、Amazon EC2 コンソールで EC2 Instance Connect を使用してインスタンスに接続するときに必要です。
-
次に、EC2 Instance Connect にあらかじめインストールされている AMI を使用して EC2 インスタンスを起動し、前のステップで作成したセキュリティグループを追加します。
-
最後に、Amazon EC2 コンソールで EC2 Instance Connect を使用してインスタンスに接続します。接続できたら、タスク 1、2、3 で完了した前提条件の設定が成功したことを確認できます。
タスク 1: EC2 Instance Connect を使用するために必要なアクセス許可を付与する
EC2 Instance Connect を使用してインスタンスに接続すると、EC2 Instance Connect API から SSH パブリックキーがインスタンスメタデータにプッシュされ、60 秒間保持されます。パブリックキーをインスタンスメタデータにプッシュするために必要なアクセス許可を付与するには、IAM ID (ユーザー、ユーザーグループ、またはロール) にアタッチされた IAM ポリシーが必要です。
タスクの目標
パブリックキーをインスタンスにプッシュするアクセス許可を付与する IAM ポリシーを作成します。許可する具体的なアクションは ec2-instance-connect:SendSSHPublicKey
です。Amazon EC2 コンソールでインスタンスを表示して選択できるように、ec2:DescribeInstances
アクションを許可する必要もあります。
ポリシーを作成したら、そのポリシーを IAM ID (ユーザー、ユーザーグループ、またはロール) にアタッチして、IAM ID にアクセス許可が付与されるようにします。
以下のように構成されたポリシーを作成します。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2-instance-connect:SendSSHPublicKey", "Resource": "*" }, { "Effect": "Allow", "Action": "ec2:DescribeInstances", "Resource": "*" } ] }
重要
このチュートリアルで作成した IAM ポリシーは非常に強力なアクセス許可を持つポリシーで、任意の AMI ユーザー名を使用して任意のインスタンスに接続できます。チュートリアルをシンプルにし、このチュートリアルで説明する特定の設定に焦点を当てるために、この非常に強力なアクセス許可を持つポリシーを使用しています。ただし、本番環境では、最小権限のアクセス許可を付与するように IAM ポリシーを設定することをお勧めします。IAM ポリシーの例は、IAM への EC2 Instance Connect のアクセス許可の付与を参照してください。
EC2 Instance Connect を使用してインスタンスに接続することを許可する IAM ポリシーを作成してアタッチするには
-
まず、IAM ポリシーを作成します
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで、ポリシー を選択します。
-
[ポリシーの作成] を選択します。
-
[アクセス許可の指定] ページで、以下を実行します。
-
[サービス] で、[EC2 Instance Connect] を選択します。
-
[許可されたアクション] の検索フィールドに
send
を入力すると関連するアクションが表示されるので、[SendSSHPublicKey] を選択します。 -
[リソース] で、[すべて] を選択します。本番環境では、ARN でインスタンスを指定することをお勧めしますが、このチュートリアルではすべてのインスタンスを許可します。
-
[アクセス許可の追加] を選択します。
-
サービスで EC2 を選択します。
-
[許可されたアクション] の検索フィールドに
describein
を入力すると関連するアクションが表示されるので、[DescribeInstances] を選択します。 -
[Next] を選択します。
-
-
[レビューと作成] ページで、以下の操作を実行します。
-
[Policy Name] にこのポリシーの名前を入力します。
-
[ポリシーの作成] を選択します。
-
-
次に、ポリシーを自分の ID にアタッチします。
-
IAM コンソールのナビゲーションペインから、[ポリシー] を選択します。
-
ポリシーのリストで、作成したポリシーの名前の横にあるラジオボックスをオンにします。検索ボックスを使用して、ポリシーのリストをフィルタリングできます。
-
[アクション]、[アタッチ] の順にクリックします。
-
[IAM エンティティ] で、ID (ユーザー、ユーザーグループ、またはロール) の横にあるチェックボックスをオンにします。検索ボックスを使用して、エンティティのリストをフィルタリングできます。
-
Attach policy] (ポリシーのアタッチ) を選択します。
-
タスク 2: EC2 Instance Connect サービスからインスタンスへのインバウンドトラフィックを許可する
Amazon EC2 コンソールで EC2 Instance Connect を使用してインスタンスに接続する場合、インスタンスに到達できるようにする必要があるトラフィックは、EC2 Instance Connect サービスからのトラフィックです。これはローカルコンピュータからインスタンスへの接続とは異なります。その場合は、ローカルコンピュータからインスタンスへのトラフィックを許可する必要があります。EC2 Instance Connect サービスからのトラフィックを許可するには、EC2 Instance Connect サービスの IP アドレス範囲からのインバウンド SSH トラフィックを許可するセキュリティグループを作成する必要があります。
AWS サービスの IP アドレス範囲は https://ip-ranges.amazonaws.com/ip-ranges.json"service":
"EC2_INSTANCE_CONNECT"
によって識別されます。
タスクの目標
まず、インスタンスが置かれている AWS リージョン内の EC2_INSTANCE_CONNECT
の IP アドレス範囲を調べます。その後、その IP アドレス 範囲のポート 22 に着信した SSH トラフィックを許可するセキュリティグループを作成します。
EC2 Instance Connect サービスからインスタンスへのインバウンドトラフィックを許可するセキュリティグループを作成する方法
-
最初に EC2 Instance Connect サービスの IP アドレス範囲を取得する
-
https://ip-ranges.amazonaws.com/ip-ranges.json
にある AWS IP アドレス範囲 JSON ファイルを開きます。 -
[ローデータ] を選択します。
-
インスタンスが置かれている AWS リージョンに関する、
EC2_INSTANCE_CONNECT
の IP アドレス範囲を検索します。ブラウザの検索フィールドを使用してサービスEC2_INSTANCE_CONNECT
を検索し、インスタンスが置かれているリージョンが見つかるまで検索を続けます。たとえば、インスタンスが米国東部 (バージニア北部) (
us-east-1
) リージョンにある場合、そのリージョンでのEC2_INSTANCE_CONNECT
の IP アドレス範囲は18.206.107.24/29
になります。注記
IP アドレス範囲は AWS リージョン ごとに異なります。
-
ip_prefix
の横に表示される IP アドレス範囲をコピーします。この手順の後半で、この IP アドレス範囲を使用します。
AWS IP アドレス範囲の JSON ファイルのダウンロード方法およびサービスごとのフィルター処理に関して詳しくは、Amazon VPC ユーザーガイドの「AWS IP アドレス範囲」を参照してください。
-
-
次に、コピーした IP アドレス範囲からのトラフィックを許可するインバウンドルールを含むセキュリティグループを作成する
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで、[Security Groups] を選択します。
-
セキュリティグループの作成 を選択します。
-
[基本的な詳細] で、次の操作を行います。
-
[セキュリティグループ名] に、セキュリティグループのわかりやすい名前を入力します。
-
[説明] に、セキュリティグループのわかりやすい説明を入力します。
-
-
[インバウンドルール] で、次の操作を行います。
-
[ルールを追加] を選択します。
-
[タイプ] で SSH] を選択します。
-
[ソース] は [カスタム] のままにします。
-
[ソース] の横のフィールドに、この手順の前半でコピーした EC2 Instance Connect サービスの IP アドレス範囲を貼り付けます。
たとえば、インスタンスが米国東部 (バージニア北部) (
us-east-1
) リージョンにある場合、次の IP アドレス範囲をフィールドに貼り付けます。18.206.107.24/29
-
-
セキュリティグループの作成 を選択します。
タスク 3: インスタンスを起動する
インスタンスを起動するときは、インスタンスの起動に必要な情報を含む AMI を指定する必要があります。EC2 Instance Connect があらかじめインストールされているかどうかにかかわらず、インスタンスの起動を選択できます。このタスクでは、EC2 Instance Connect にあらかじめインストールされている AMI を指定します。
EC2 Instance Connect のプリインストール無しでインスタンスを起動し、EC2 Instance Connect を使用してインスタンスに接続する場合は、追加の設定手順を実行する必要があります。これらの手順は、このチュートリアルの範囲外です。
タスクの目標
EC2 Instance Connect がプリインストールされている Amazon Linux 2023 AMI を使用してインスタンスを起動します。Amazon EC2 コンソールで EC2 Instance Connect を使用してインスタンスに接続できるように、前に作成したセキュリティグループも指定します。EC2 Instance Connect を使用してインスタンスに接続することで、パブリックキーをインスタンスのメタデータにプッシュするため、インスタンスを起動するときに SSH キーを指定する必要はありません。
Amazon EC2 コンソールで EC2 Instance Connect を使用できるインスタンスを起動するには
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
画面の上のナビゲーションバーに、現在の AWS リージョンが表示されます (アイルランドなど)。インスタンスを起動するリージョンを選択します。特定のリージョンのトラフィックを許可するセキュリティグループを作成したため、インスタンスを起動するのと同じリージョンを選択する必要があり、この選択が重要となります。
-
Amazon EC2 コンソールダッシュボードで、[インスタンスを起動] を選択します。
-
(オプション) [Names and tags] (名前とタグ) における [Name] (名前) では、インスタンス用にわかりやすい名前を入力します。
-
[アプリケーションと OS イメージ (Amazon マシンイメージ)] で、[クイックスタート] を選択します。[Amazon Linux] がデフォルトで選択されています。[Amazon マシンイメージ (AMI)] ではデフォルトで、[Amazon Linux 2023 AMI] が選択されています。このタスクは既定の選択のままにします。
-
[インスタンスタイプ]で、[インスタンスタイプ] のデフォルトの選択状態のままにするか、別のインスタンスタイプを選択します。
-
[キーペア (ログイン)] の [キーペア名] で、[キーペアなしで続行 (非推奨)] を選択します。EC2 Instance Connect を使用してインスタンスに接続すると、EC2 Instance Connect はキーペアをインスタンスのメタデータにプッシュします。接続に使用されるのはこのキーペアです。
-
[Network settings] (ネットワーク設定) で、次の操作を行います:
-
[自動割り当てパブリック IP] は、[有効] のままにします。
注記
Amazon EC2 コンソールで EC2 Instance Connect を使用してインスタンスに接続するには、そのインスタンスにパブリック IPv4 アドレスが必要です。
-
[ファイアウォール (セキュリティグループ)] で、[既存のセキュリティグループを選択する] を選択します。
-
[共通セキュリティグループ] で、先ほど作成したセキュリティグループを選択します。
-
-
[Summary] (サマリー) パネルで、[Launch instance] (インスタンスの起動) を選択します。
タスク 4: インスタンスに接続する
EC2 Instance Connect を使用してインスタンスに接続すると、EC2 Instance Connect API から SSH パブリックキーがインスタンスメタデータにプッシュされ、60 秒間保持されます。SSH デーモンは、AuthorizedKeysCommand
および AuthorizedKeysCommandUser
を使用して、インスタンスメタデータからパブリックキーを見つけて認証を行い、ユーザーをインスタンスに接続します。
タスクの目標
このタスクでは、Amazon EC2 コンソールで EC2 Instance Connect を使用してインスタンスに接続します。前提条件となるタスク 1、2、3 を完了していれば、接続は成功するはずです。
インスタンスに接続する手順
インスタンスに接続するには、次の手順に従ってください。手順のアニメーションを見る場合は、「アニメーションを表示: インスタンスに接続する」を参照してください。
Amazon EC2 コンソールで EC2 Instance Connect を使用してインスタンスを起動するには
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
画面の上のナビゲーションバーに、現在の AWS リージョンが表示されます (アイルランドなど)。インスタンスが存在するリージョンを選択します。
-
ナビゲーションペインで、[インスタンス] を選択します。
-
インスタンスを選択し、[接続] を選択します。
-
[EC2 Instance Connect] タブを選択します。
-
[接続タイプ] で、[EC2 Instance Connect を使用して接続] を選択します。
-
[接続]を選択します。
ブラウザでターミナルウィンドウが開き、インスタンスに接続されます。