既存インスタンスのインスタンスメタデータオプションの変更 - Amazon Elastic Compute Cloud

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

既存のインスタンスのインスタンスメタデータオプションを変更することが可能です。

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

既存インスタンスのインスタンスメタデータオプションのクエリ

次のいずれかの方法を使用して、既存のインスタンスのインスタンスメタデータオプションをクエリできます。

Console
コンソールを使用して既存のインスタンスのインスタンスメタデータオプションをクエリするには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[Instances] (インスタンス) を選択します。

  3. インスタンスを選択します。

  4. [アクション][インスタンスの設定][インスタンスメタデータのオプションを変更] の順に選択します。

  5. [インスタンスメタデータオプションの変更] ダイアログボックスで現在のインスタンスメタデータオプションを確認します。

AWS CLI
AWS CLI を使用して既存のインスタンスのインスタンスメタデータオプションをクエリするには

describe-instances CLI コマンドを使用します。

aws ec2 describe-instances \ --instance-id i-1234567898abcdef0 \ --query 'Reservations[].Instances[].MetadataOptions'
PowerShell
Tools for PowerShell を使用して既存のインスタンスのインスタンスメタデータオプションをクエリするには

Get-EC2Instance コマンドレットを使用します。

(Get-EC2Instance ` -InstanceId i-1234567898abcdef0).Instances.MetadataOptions

IMDSv2 の使用を要求する

既存のインスタンスに対して、インスタンスメタデータのリクエスト時に IMDSv2 が使用されるようにするため、既存のインスタンスメタデータオプションを変更します。IMDSv2 が必須である場合、IMDSv1 は使用できません。

注記

IMDSv2 の使用を要求する前に、インスタンスが IMDSv1 呼び出しを行っていないことを確認してください。MetadataNoToken CloudWatch メトリクスは IMDSv1 呼び出しを追跡します。あるインスタンスの MetadataNoToken で IMDSv1 の使用量がゼロと記録されている場合は、そのインスタンスは IMDSv2 を要求できます。

Console
既存インスタンスでの IMDSv2 の使用を義務付けるには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[Instances] (インスタンス) を選択します。

  3. インスタンスを選択します。

  4. [アクション][インスタンスの設定][インスタンスメタデータのオプションを変更] の順に選択します。

  5. [インスタンスメタデータオプションの変更] ダイアログボックスで、次の操作を行います。

    1. [インスタンスメタデータサービス] で、[有効にする] を選択します。

    2. [IMDSv2] の場合は、[必須] を選択します。

    3. [Save] を選択します。

AWS CLI
既存インスタンスでの 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
PowerShell
既存インスタンスでの IMDSv2 の使用を義務付けるには

Edit-EC2InstanceMetadataOption コマンドレットを使って、HttpTokens パラメータを required に設定できます。HttpTokens の値を指定する場合は、HttpEndpointenabled に設定する必要があります。

(Edit-EC2InstanceMetadataOption ` -InstanceId i-1234567898abcdef0 ` -HttpTokens required ` -HttpEndpoint enabled).InstanceMetadataOptions

IMDSv1 の使用を再開します

IMDSv2 が必須である場合、インスタンスメタデータのリクエスト時に IMDSv1 は機能しません。IMDSv2 がオプションである場合、IMDSv2 と IMDSv1 の両方が機能します。したがって、IMDSv1 を復元するには、次のいずれかの方法を使用して IMDSv2 をオプションとします。

Console
インスタンスで IMDSv1 の使用を復元するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[Instances] (インスタンス) を選択します。

  3. インスタンスを選択します。

  4. [アクション][インスタンスの設定][インスタンスメタデータのオプションを変更] の順に選択します。

  5. [インスタンスメタデータオプションの変更] ダイアログボックスで、次の操作を行います。

    1. [インスタンスメタデータサービス] で、[有効にする] が選択されていることを確認します。

    2. [IMDSv2] の場合は、[オプション] を選択します。

    3. [Save] を選択します。

AWS CLI
インスタンスで 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
PowerShell
インスタンスで IMDSv1 の使用を復元するには

Edit-EC2InstanceMetadataOption コマンドレットを、HttpTokensoptional に設定して実行すると、インスタンスメタデータのリクエスト時に IMDSv1 の使用を復元できます。

(Edit-EC2InstanceMetadataOption ` -InstanceId i-1234567898abcdef0 ` -HttpTokens optional ` -HttpEndpoint enabled).InstanceMetadataOptions

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

既存インスタンスについて、PUTリスポンスホップリミットの設定を変更することができます。

現在、PUT 応答ホップ制限の変更をサポートしているのは、AWS CLI と AWS SDK のみです。

AWS CLI
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
PowerShell
PUT レスポンスホップリミットを変更するには

Edit-EC2InstanceMetadataOption コマンドレットを使って、HttpPutResponseHopLimit パラメータを必要なホップ数に設定できます。以下の例では、ホップリミットが3に設定されています。HttpPutResponseHopLimit の値を指定する場合は、HttpEndpointenabled に設定することも必要です。

(Edit-EC2InstanceMetadataOption ` -InstanceId i-1234567898abcdef0 ` -HttpPutResponseHopLimit 3 ` -HttpEndpoint enabled).InstanceMetadataOptions

IMDS IPv4 および IPv6 エンドポイントを有効にする

IMDS のインスタンスには、IPv4 (169.254.169.254) と IPv6 ([fd00:ec2::254]) という 2 つのエンドポイントがあります。IMDS を有効にすると、IPv4 エンドポイントが自動的に有効になります。IPv6 専用サブネットに対してインスタンスを起動しても、その IPv6 エンドポイントは無効のままになります。IPv6 エンドポイントを有効にするには、明示的に有効にする必要があります。IPv6 エンドポイントを有効にしても、IPv4 エンドポイントは有効なままになります。

IPv6 エンドポイントは、インスタンス起動時またはその後に有効にできます。

IPv6 エンドポイントを有効にするための要件

現在、AWS CLI と AWS SDK のみがインスタンス起動後の IMDS IPv6 エンドポイントの有効化をサポートします。

AWS CLI
インスタンスで IMDS IPv6 エンドポイントを有効にするには

modify-instance-metadata-options CLI コマンドを使って、http-protocol-ipv6 パラメータを enabled に設定できます。http-protocol-ipv6 の値を指定する場合は、http-endpointenabled に設定することも必要です。

aws ec2 modify-instance-metadata-options \ --instance-id i-1234567898abcdef0 \ --http-protocol-ipv6 enabled \ --http-endpoint enabled
PowerShell
インスタンスで IMDS IPv6 エンドポイントを有効にするには

Edit-EC2InstanceMetadataOption コマンドレットを使って、HttpProtocolIpv6 パラメータを enabled に設定できます。HttpProtocolIpv6 の値を指定する場合は、HttpEndpointenabled に設定することも必要です。

(Edit-EC2InstanceMetadataOption ` -InstanceId i-1234567898abcdef0 ` -HttpProtocolIpv6 enabled ` -HttpEndpoint enabled).InstanceMetadataOptions

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

使用中の IMDS のバージョンに関係なく、IMDS の HTTP エンドポイントを無効にすることによりインスタンスメタデータへのアクセスをオフにすることができます。HTTP エンドポイントを無効化することにより、この変更はいつでも元に戻すことができます。

次のいずれかの方法を使用して、インスタンスのインスタンスメタデータへのアクセスを有効にします。

Console
インスタンスメタデータへのアクセスを有効にするには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[Instances] (インスタンス) を選択します。

  3. インスタンスを選択します。

  4. [アクション][インスタンスの設定][インスタンスメタデータのオプションを変更] の順に選択します。

  5. [インスタンスメタデータオプションの変更] ダイアログボックスで、次の操作を行います。

    1. [インスタンスメタデータサービス] で、[有効にする] を選択します。

    2. [Save] を選択します。

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

modify-instance-metadata-options CLI コマンドを使って、http-endpoint パラメータを enabled に設定できます。

aws ec2 modify-instance-metadata-options \ --instance-id i-1234567898abcdef0 \ --http-endpoint enabled
PowerShell
インスタンスメタデータへのアクセスを有効にするには

Edit-EC2InstanceMetadataOption コマンドレットを使って、HttpEndpoint パラメータを enabled に設定できます。

(Edit-EC2InstanceMetadataOption ` -InstanceId i-1234567898abcdef0 ` -HttpEndpoint enabled).InstanceMetadataOptions

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

使用中のインスタンスメタデータサービスのバージョンに関係なく、IMDS の HTTP エンドポイントを無効にすることにより IMDS へのアクセスをオフにすることができます。HTTP エンドポイントを有効化することにより、この変更はいつでも元に戻すことができます。

インスタンスのインスタンスメタデータへのアクセスを無効にするには、次のいずれかの方法を使用します。

Console
インスタンスメタデータへのアクセスを無効にするには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[Instances] (インスタンス) を選択します。

  3. インスタンスを選択します。

  4. [アクション][インスタンスの設定][インスタンスメタデータのオプションを変更] の順に選択します。

  5. [インスタンスメタデータオプションの変更] ダイアログボックスで、次の操作を行います。

    1. [インスタンスメタデータサービス] では、[有効にする] をオフにします。

    2. [Save] を選択します。

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

modify-instance-metadata-options CLI コマンドを使って、http-endpoint パラメータを disabled に設定できます。

aws ec2 modify-instance-metadata-options \ --instance-id i-1234567898abcdef0 \ --http-endpoint disabled
PowerShell
インスタンスメタデータへのアクセスを無効にするには

Edit-EC2InstanceMetadataOption コマンドレットを使って、HttpEndpoint パラメータを disabled に設定できます。

(Edit-EC2InstanceMetadataOption ` -InstanceId i-1234567898abcdef0 ` -HttpEndpoint disabled).InstanceMetadataOptions