既存インスタンスのインスタンスメタデータオプションの変更
既存のインスタンスのインスタンスメタデータオプションを変更することが可能です。
また、既存のインスタンスでインスタンスメタデータオプションを変更することをユーザーに禁止する IAM ポリシーを作成することもできます。インスタンスメタデータオプションを変更できるユーザーをコントロールするには指定したロールを持つユーザー以外のすべてのユーザーに ModifyInstanceMetadataOptions API の使用を禁止するポリシーを指定できます。IAM ポリシーの例についてはインスタンスメタデータの使用を参照してください。
宣言ポリシーを使用してインスタンスメタデータオプションを設定した場合、アカウント内で直接変更することはできません。詳細については「AWS OrganizationsIAM ユーザーガイド」の「 マネージドポリシー」を参照してください。
IMDSv2 の使用を要求する
既存のインスタンスに対して、インスタンスメタデータのリクエスト時に IMDSv2 が使用されるようにするため、既存のインスタンスメタデータオプションを変更します。IMDSv2 が必須である場合、IMDSv1 は使用できません。
IMDSv2 の使用を要求する前に、インスタンスが IMDSv1 呼び出しを行っていないことを確認してください。MetadataNoToken
CloudWatch メトリクスは IMDSv1 呼び出しを追跡します。あるインスタンスの MetadataNoToken
で IMDSv1 の使用量がゼロと記録されている場合はそのインスタンスは IMDSv2 を要求できます。
- Console
-
既存インスタンスでの IMDSv2 の使用を義務付けるには
Amazon EC2 コンソール のhttps://console.aws.amazon.com/ec2/ を開いてください。
-
ナビゲーションペインで、[Instances] (インスタンス) を選択してください。
-
インスタンスを選択してください。
-
[アクション]、[インスタンスの設定]、[インスタンスメタデータのオプションを変更] の順に選択してください。
-
[インスタンスメタデータオプションの変更] ダイアログボックスで、次の操作を行います。
-
[インスタンスメタデータサービス] で、[有効にする] を選択してください。
-
[IMDSv2] の場合は[必須] を選択してください。
-
[Save] を選択してください。
- AWS CLI
-
既存インスタンスでの IMDSv2 の使用を義務付けるには
modify-instance-metadata-optionsCLI コマンドを使って、http-tokens
パラメータを required
に設定できます。http-tokens
の値を指定する場合はhttp-endpoint
も enabled
に設定する必要があります。
aws ec2 modify-instance-metadata-options \
--instance-id i-1234567898abcdef0
\
--http-tokens required \
--http-endpoint enabled
- PowerShell
-
既存インスタンスでの IMDSv2 の使用を義務付けるには
Edit-EC2InstanceMetadataOption コマンドレットを使って、HttpTokens
パラメータを required
に設定できます。HttpTokens
の値を指定する場合はHttpEndpoint
も enabled
に設定する必要があります。
(Edit-EC2InstanceMetadataOption `
-InstanceId i-1234567898abcdef0
`
-HttpTokens required `
-HttpEndpoint enabled).InstanceMetadataOptions
IMDSv1 の使用を再開します
IMDSv2 が必須である場合、インスタンスメタデータのリクエスト時に IMDSv1 は機能しません。IMDSv2 がオプションである場合、IMDSv2 と IMDSv1 の両方が機能します。したがって、IMDSv1 を復元するには次のいずれかの方法を使用して IMDSv2 をオプションとします。
- Console
-
インスタンスで IMDSv1 の使用を復元するには
Amazon EC2 コンソール のhttps://console.aws.amazon.com/ec2/ を開いてください。
-
ナビゲーションペインで、[Instances] (インスタンス) を選択してください。
-
インスタンスを選択してください。
-
[アクション]、[インスタンスの設定]、[インスタンスメタデータのオプションを変更] の順に選択してください。
-
[インスタンスメタデータオプションの変更] ダイアログボックスで、次の操作を行います。
-
[インスタンスメタデータサービス] で、[有効にする] が選択されていることを確認します。
-
[IMDSv2] の場合は[オプション] を選択してください。
-
[Save] を選択してください。
- AWS CLI
-
インスタンスで IMDSv1 の使用を復元するには
modify-instance-metadata-options CLI コマンドを、http-tokens
を optional
に設定して実行すると、インスタンスメタデータのリクエスト時に IMDSv1 の使用を復元できます。
aws ec2 modify-instance-metadata-options \
--instance-id i-1234567898abcdef0
\
--http-tokens optional \
--http-endpoint enabled
- PowerShell
-
インスタンスで IMDSv1 の使用を復元するには
Edit-EC2InstanceMetadataOption コマンドレットを、HttpTokens
を optional
に設定して実行すると、インスタンスメタデータのリクエスト時に 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-endpoint
を enabled
に設定することも必要です。
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
の値を指定する場合はHttpEndpoint
を enabled
に設定することも必要です。
(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 エンドポイントはインスタンス起動時またはその後に有効にできます。
現在、AWS CLI と AWS SDK のみがインスタンス起動後の IMDS IPv6 エンドポイントの有効化をサポートします。
- AWS CLI
-
インスタンスで IMDS IPv6 エンドポイントを有効にするには
modify-instance-metadata-options CLI コマンドを使って、http-protocol-ipv6
パラメータを enabled
に設定できます。http-protocol-ipv6
の値を指定する場合はhttp-endpoint
を enabled
に設定することも必要です。
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
の値を指定する場合はHttpEndpoint
を enabled
に設定することも必要です。
(Edit-EC2InstanceMetadataOption `
-InstanceId i-1234567898abcdef0
`
-HttpProtocolIpv6 enabled `
-HttpEndpoint enabled).InstanceMetadataOptions
使用中の IMDS のバージョンに関係なく、IMDS の HTTP エンドポイントを無効にすることによりインスタンスメタデータへのアクセスをオフにすることができます。HTTP エンドポイントを無効化することにより、この変更はいつでも元に戻すことができます。
次のいずれかの方法を使用して、インスタンスのインスタンスメタデータへのアクセスを有効にします。
- Console
-
インスタンスメタデータへのアクセスを有効にするには
Amazon EC2 コンソール のhttps://console.aws.amazon.com/ec2/ を開いてください。
-
ナビゲーションペインで、[Instances] (インスタンス) を選択してください。
-
インスタンスを選択してください。
-
[アクション]、[インスタンスの設定]、[インスタンスメタデータのオプションを変更] の順に選択してください。
-
[インスタンスメタデータオプションの変更] ダイアログボックスで、次の操作を行います。
-
[インスタンスメタデータサービス] で、[有効にする] を選択してください。
-
[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
-
インスタンスメタデータへのアクセスを無効にするには
Amazon EC2 コンソール のhttps://console.aws.amazon.com/ec2/ を開いてください。
-
ナビゲーションペインで、[Instances] (インスタンス) を選択してください。
-
インスタンスを選択してください。
-
[アクション]、[インスタンスの設定]、[インスタンスメタデータのオプションを変更] の順に選択してください。
-
[インスタンスメタデータオプションの変更] ダイアログボックスで、次の操作を行います。
-
[インスタンスメタデータサービス] では[有効にする] をオフにします。
-
[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
実行中または停止中のインスタンス上のインスタンスメタデータ内のタグへのアクセスを許可できます。インスタンスごとに、アクセスを明示的に許可する必要があります。アクセスが許可されている場合、インスタンスタグキーは特定の文字制限に準拠している必要があります。それ以外の場合はエラーが発生します。詳細については「インスタンスメタデータのタグへのアクセスを許可する」を参照してください。