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