为现有实例修改实例元数据选项 - Amazon Elastic Compute Cloud

为现有实例修改实例元数据选项

您可以修改现有实例的实例元数据选项。

您还可以创建 IAM policy,以阻止用户修改现有实例上的实例元数据选项。要控制哪些用户可以修改实例元数据选项,请指定一个策略,阻止除具有指定角色的用户以外的所有用户使用 ModifyInstanceMetadataOptions API。有关示例 IAM policy,请参阅 使用实例元数据

查询现有实例的实例元数据选项

您可以使用以下方法之一查询现有实例的实例元数据选项。

Console
使用控制台查询现有实例的实例元数据选项
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择实例

  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 Cmdlet。

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

要求使用 IMDSv2

使用以下方法之一修改现有实例上的实例元数据选项,以要求在请求实例元数据时使用 IMDSv2。如果 IMDSv2 是必需的,则无法使用 IMDSv1。

Console
要求在现有实例上使用 IMDSv2
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择实例

  3. 选择实例。

  4. 依次选择操作实例设置修改实例元数据选项

  5. 修改实例元数据选项对话框中,执行以下操作:

    1. 对于实例元数据服务,选择启用

    2. 对于IMDSv2,选择必需

    3. 选择保存

AWS CLI
要求在现有实例上使用 IMDSv2

请使用 modify-instance-metadata-options CLI 命令,并将 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 Cmdlet 并将 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
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择实例

  3. 选择实例。

  4. 依次选择操作实例设置修改实例元数据选项

  5. 修改实例元数据选项对话框中,执行以下操作:

    1. 对于实例元数据服务,请确保选择启用

    2. 对于 IMDSv2,选择可选

    3. 选择保存

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 Cmdlet 并将 HttpTokens 设置为 optional,以在请求实例元数据时恢复使用 IMDSv1。

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

更改 PUT 响应跃点限制

对于现有的实例,您可以更改 PUT 响应跃点数限制设置。

目前仅 AWS CLI 和 AWS SDK 支持更改 PUT 响应跃点限制。

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 Cmdlet 并将 HttpPutResponseHopLimit 参数设置为所需的跃点数。在以下示例中,跃点数限制设置为 3。请注意,在为 HttpPutResponseHopLimit 指定值时,还必须将 HttpEndpoint 设置为 enabled

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

为实例启用 IPv6 端点

默认禁用 IPv6 端点。即使您已在仅 IPv6 子网中启动了实例,也是如此。IMDS 的 IPv6 端点只能在基于 AWS Nitro System 构建的实例上访问。

目前,仅 AWS CLI 和 AWS SDK 支持为实例启用 IPv6 端点。

AWS CLI
为实例启用 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
为实例启用 IPv6 端点

使用 Edit-EC2InstanceMetadataOption Cmdlet 并将 HttpProtocolIpv6 参数设置为 enabled。请注意,在为 HttpProtocolIpv6 指定值时,还必须将 HttpEndpoint 设置为 enabled

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

开启对实例元数据的访问权限

您可以通过启用实例上 IMDS 的 HTTP 端点来开启对实例元数据的访问权限,无论您使用的是哪个版本的 IMDS。您可以随时通过禁用 HTTP 端点来撤消该更改。

使用以下方法之一,即可开启对实例上实例元数据的访问权限。

Console
开启对实例元数据的访问权限
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择实例

  3. 选择实例。

  4. 依次选择操作实例设置修改实例元数据选项

  5. 修改实例元数据选项对话框中,执行以下操作:

    1. 对于实例元数据服务,选择启用

    2. 选择保存

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 Cmdlet 并将 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. 在导航窗格中,选择实例

  3. 选择实例。

  4. 依次选择操作实例设置修改实例元数据选项

  5. 修改实例元数据选项对话框中,执行以下操作:

    1. 对于实例元数据服务,清除启用

    2. 选择保存

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 Cmdlet 并将 HttpEndpoint 参数设置为 disabled

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