我该怎样使用 Systems Manager 自动化来强制实施仅使用 IMDSv2 访问来自我的 Amazon EC2 实例的实例元数据?

1 分钟阅读
0

我想使用实例元数据服务版本 2 (IMDSv2) 从我的 Amazon Elastic Compute Cloud (Amazon EC2) 实例访问实例元数据。如何在我的 Amazon EC2 实例上强制实施 IMDSv2?

简短描述

默认情况下,您可以使用以下两种方法之一或同时使用两种方法从正在运行的 Amazon EC2 实例中检索实例元数据:

  • 实例元数据服务版本 1 (IMDSv1) — 请求/响应方法
  • 实例元数据服务版本 2 (IMDSv2) — 面向会话的方法

要请求在实例上使用 IMDSv2,您可以运行 AWS Systems Manager AWSSupport-ConfigureEC2Metadata 自动化文档。

重要提示:如果您强制使用 IMDSv2,那么 IMDSv1 将不再有效,并且使用 IMDSv1 的应用程序可能无法正常运行。在强制实施 IMDSv2 之前,请验证使用 Amazon EC2 元数据的所有应用程序都已升级到支持 IMDSv2 的版本。有关实例元数据的更多信息,请参阅配置实例元数据服务

解决方法

先决条件

要运行自动化并读取输出,您必须拥有 ssm:StartAutomationExecutionssm:GetAutomationExecution 权限。

运行 AWSSupport-ConfigureEC2Metadata 自动化文档

  1. 打开 Systems Manager 控制台,然后从导航窗格中选择 Automation(自动化)。
  2. 选择 Execute automation(执行自动化)。
  3. Owned by Amazon(Amazon 拥有)选项卡上,对于 Automation document(自动化文档),输入 AWSSupport-ConfigureEC2Metadata,然后按 Enter 键。
  4. 选择 AWSSupport-ConfigureEC2Metadata 文档的单选按钮,然后选择 Next(下一步)。
  5. 对于 Execute automation document(执行自动化文档),选择 Simple execution(简单执行)。
    注意:如果需要在多个目标上运行自动化,请选择 Rate Control(速率控制)。
  6. 对于 Input parameters(输入参数),请指定以下参数:
    InstanceId:输入要为其配置元数据设置的 Amazon EC2 实例的 ID。
    HttpPutResponseHopLimit:保留为 0 以保留当前值,或者输入所需的值 (1-64)。
    EnforceIMDSv2:选择 required(必填项)。
    MetadataAccess:选择 enabled(启用)。
  7. (可选)对于 AutomationAssumeRole,选择一个角色。如果未指定角色,则 Systems Manager 自动化将使用运行该文档的用户的权限。
    注意:要更改目标 Amazon EC2 实例,AutomationAssumeRole 或用户角色必须拥有 ec2:ModifyInstanceMetadataOptionsec2:DescribeInstances 权限。有关为 Systems Manager 自动化创建代入角色的详细信息,请参阅为自动化创建服务角色
  8. 选择 Execute(执行)。

您还可以使用 AWSSupport-ConfigureEC2Metadata 文档来更改其他 Amazon EC2 实例元数据。例如,您可以关闭元数据或更改 HttpPutResponseHopLimit 属性的值。有关更多信息,请参阅 AWSSupport-ConfigureEC2Metadata


相关信息

检索实例元数据

AWS 官方
AWS 官方已更新 3 年前