インスタンスメタデータオプションの設定 - Amazon Elastic Compute Cloud

インスタンスメタデータオプションの設定

インスタンスメタデータオプションを使用すると、新規または既存のインスタンスで次の操作を実行するように設定できます。

  • インスタンスメタデータをリクエストするときに IMDSv2 の使用を要求する

  • PUT レスポンスのホップ制限を指定する

  • インスタンスメタデータへのアクセスを無効にする

IAM ポリシーまたは SCP で IAM 条件キーを使用して、次の操作を行うこともできます。

  • IMDSv2 の使用を要求するようにインスタンスが設定されている場合にのみ、インスタンスの起動を許可する

  • ホップの許可数を制限する

  • インスタンスメタデータへのアクセスを無効にする

注記

PowerShell のバージョンが 4.0 より前の場合は、IMDSv2 の使用を要求するために Windows Management Framework 4.0 に更新する必要があります。

注記

注意深く実行し、変更を行う前に慎重なテストを実施する必要があります。以下の情報を記録します。

  • IMDSv2の使用を強制する場合、インスタンスメタデータアクセスのためにIMDSv1を使用するアプリケーションまたはエージェントは休憩します。

  • インスタンスメタデータへのアクセスをすべてオフにする場合、インスタンスメタデータアクセスに依存して機能するアプリケーションまたはエージェントは休憩します。

  • IMDSv2 でトークンを取得する際には、/latest/api/ トークンを使用する必要があります。

新規インスタンスのインスタンスメタデータオプションの設定

インスタンスの起動時に、インスタンスで IMDSv2 を使用することを要求できます。また、新しいインスタンスで IMDSv2 の使用を要求しない限り、新しいインスタンスの起動をユーザーに禁止する IAM ポリシーを作成することもできます。

Console

新しいインスタンスで IMDSv2 の使用を要求するには

  • Amazon EC2 コンソールで新しいインスタンスを起動するとき、[Configure Instance Details (インスタンスの詳細の設定) ] ページで次のオプションを選択します。

    • [Advanced Details (高度な詳細)] の [ Metadata accessible (メタデータにアクセス可能)] で、[Enabled (有効)] を選択します。

    • [Metadata version (メタデータバージョン)] で、[V2 (token required) (V2 (トークンが必要))] を選択します。

詳細については、「ステップ 3: インスタンスの詳細を設定する」を参照してください。

AWS CLI

新しいインスタンスで IMDSv2 の使用を要求するには

次の run-instances の例では、c3.large--metadata-options に設定して HttpTokens=required インスタンスを起動します。HttpTokens の値を指定する場合は、HttpEndpointenabled に設定する必要があります。メタデータの取得リクエストではセキュリティで保護されたトークンヘッダーが required に設定されるため、インスタンスメタデータをリクエストするときに IMDSv2 の使用を要求するようにインスタンスが設定されます。

aws ec2 run-instances --image-id ami-0abcdef1234567890 --instance-type c3.large ... --metadata-options "HttpEndpoint=enabled,HttpTokens=required"

すべての新しいインスタンスでIMDSv2の使用を強制するには

IAM ユーザーがインスタンスメタデータをリクエストする際にIMDSv2の使用を義務付けるインスタンスみを起動できるようにするには、IMDSv2を必要とする条件が満たされないとインスタンスを起動できないように指定することができます。IAM ポリシーの例については、「インスタンスメタデータの使用」を参照してください。

Console

インスタンスメタデータへのアクセスを無効にするには

  • 使用しているインスタンスメタデータサービスのバージョンに関係なく、インスタンスメタデータへのアクセスがオフになっていることを確認するには、[Configure Instance Details (インスタンスの詳細の設定)] ページで次のオプションを選択した状態で Amazon EC2 コンソールでインスタンスを起動します。

    • [Advanced Details (高度な詳細)] の [ Metadata accessible (メタデータにアクセス可能)] で、[Disabled (無効)] を選択します。

詳細については、「ステップ 3: インスタンスの詳細を設定する」を参照してください。

AWS CLI

インスタンスメタデータへのアクセスを無効にするには

使用しているインスタンスメタデータサービスのバージョンに関係なく、インスタンスメタデータへのアクセスを確実に無効にするには、--metadata-optionsHttpEndpoint=disabled に設定してインスタンスを起動します。アクセスを後で有効にするには、modify-instance-metadata-options コマンドを使用します。

aws ec2 run-instances --image-id ami-0abcdef1234567890 --instance-type c3.large ... --metadata-options "HttpEndpoint=disabled"

既存インスタンスのインスタンスメタデータオプションの変更

既存インスタンスで IMDSv2 を使用することを要求できます。また、既存インスタンスで PUT レスポンスのホップ制限を変更したり、インスタンスメタデータへのアクセスを無効にしたりすることもできます。また、既存インスタンスでインスタンスメタデータオプションを変更することをユーザーに禁止する IAM ポリシーを作成することもできます。

現在、既存のインスタンスでのインスタンスメタデータオプションの変更は、AWS SDK もしくは AWS CLI のみでサポートされます。Amazon EC2 コンソールを使用して、インスタンスメタデータオプションを変更することはできません。

IMDSv2 の使用を必須にするには

既存インスタンスに対して、インスタンスメタデータのリクエスト時に IMDSv2 の使用を必須にするようにオプトインできます。modify-instance-metadata-optionsCLI コマンドを使って、http-tokens パラメータを required に設定できます。http-tokens の値を指定する場合は、http-endpointenabled に設定する必要があります。

aws ec2 modify-instance-metadata-options \ --instance-id i-1234567898abcdef0 \ --http-tokens required \ --http-endpoint enabled

PUT レスポンスホップリミットを変更するには

既存インスタンスについて、PUTリスポンスホップリミットの設定を変更することができます。modify-instance-metadata-options CLI コマンドを使って、http-put-response-hop-limit パラメータを必要なホップ数に設定できます。以下の例では、ホップリミットが3に設定されています。http-put-response-hop-limit の値を指定する場合は、http-endpointenabled に設定することも必要です。

aws ec2 modify-instance-metadata-options \ --instance-id i-1234567898abcdef0 \ --http-put-response-hop-limit 3 \ --http-endpoint enabled

IMDSv2 を使用してインスタンスで IMDSv1 の使用を復元するには

modify-instance-metadata-options CLI コマンドを、http-tokensoptional に設定して実行すると、インスタンスメタデータのリクエスト時に IMDSv1 の使用を復元できます。

aws ec2 modify-instance-metadata-options \ --instance-id i-1234567898abcdef0 \ --http-tokens optional \ --http-endpoint enabled

インスタンスメタデータへのアクセスを無効にするには

使用中のインスタンスメタデータサービスのバージョンに関係なく、インスタンスメタデータサービスの HTTP エンドポイントを無効にすることによりインスタンスメタデータへのアクセスをオフにすることができます。HTTP エンドポイントを有効化することにより、この変更はいつでも元に戻すことができます。modify-instance-metadata-optionsCLI コマンドを使って、http-endpoint パラメータを disabled に設定できます。

aws ec2 modify-instance-metadata-options \ --instance-id i-1234567898abcdef0 \ --http-endpoint disabled

modify-instance-metadata-options の使用を制御するには

インスタンスメタデータオプションを変更できる IAM ユーザーをコントロールするには、指定したロールを持つユーザー以外のすべてのユーザーに ModifyInstanceMetadataOptions API の使用を禁止するポリシーを指定できます。IAM ポリシーの例については、「インスタンスメタデータの使用」を参照してください。