在 Elastic Beanstalk 环境的实例上配置 IMDS - Amazon Elastic Beanstalk
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Elastic Beanstalk 环境的实例上配置 IMDS

本主题介绍实例元数据服务(IMDS)。

实例元数据是与亚马逊弹性计算云 (Amazon EC2) 实例相关的数据,应用程序可以使用这些数据来配置或管理正在运行的实例。实例元数据服务(IMDS)是实例上的组件,在实例上进行编码,用于安全访问实例元数据。这些代码可以是您的环境实例上的 Elastic Beanstalk 平台代码 Amazon ,也可以是您的应用程序可能正在使用的软件开发工具包,甚至是您的应用程序自己的代码。有关更多信息,请参阅 Amazon 用户指南中的实例元数据和 EC2 用户数据。

代码可以使用以下两种方法之一从正在运行的实例访问实例元数据:实例元数据服务版本 1 (IMDSv1) 或实例元数据服务版本 2 (IMDSv2)。 IMDSv2 使用面向会话的请求并缓解了几种可用于尝试访问 IMDS 的漏洞。有关这两种方法的信息,请参阅 Amazon EC2 用户指南中的配置实例元数据服务

IMDS 平台支持

在亚马逊 Linux 2、亚马逊 Linux 2023 和 Windows 服务器上运行的 Elastic Beanstalk 平台都支持和。 IMDSv1 IMDSv2有关更多信息,请参阅 使用 Elastic Beanstalk 控制台配置 IMDS

选择 IMDS 方法

在确定希望环境支持的 IMDS 方法时,请考虑以下使用案例:

  • Amazon SDK — 如果您的应用程序使用 S Amazon DK,请确保使用最新版本的 SDK。调 Amazon SDKs用 IMDS,并 IMDSv2 尽可能使用较新的 SDK 版本。如果您曾经禁用 IMDSv1,或者您的应用程序使用的是旧的 SDK 版本,IMDS 调用可能会失败。

  • 您的应用程序代码 — 如果您的应用程序发出 IMDS 调用,请考虑使用 Amazon SDK,这样您就可以进行调用,而不是直接发出 HTTP 请求。通过这种方式,您无需进行代码更改即可在 IMDS 方法之间切换。只要有可能, Amazon SDK IMDSv2 就会使用。

  • Elastic Beanstalk 平台代码 — 我们的代码 Amazon 通过 SDK 进行 IMDS 调用, IMDSv2 因此可以在所有支持的平台版本上使用。如果您的代码使用 S up-to-date Amazon DK 并通过 SDK 进行所有 IMDS 调用,则可以放心地将其禁用 IMDSv1。

使用 Elastic Beanstalk 控制台配置 IMDS

您可以在 Elastic Beanstalk 控制台中修改 Elastic Beanstalk 环境 EC2 的亚马逊实例配置。

重要

DisableIMDSv1 选项设置可能导致 Elastic Beanstalk 使用启动模板创建环境或将现有环境从启动配置更新为启动模板。这样做需要管理启动模板的必要权限。这些权限包含在我们的托管策略中。如果您使用自定义策略而不是我们的托管策略,则当您为环境启用竞价型实例时,环境创建或更新可能会失败。有关更多信息和其他注意事项,请参阅为你的 Elastic Beanstalk 环境启动模板

在 Elastic Beanstalk 控制 EC2 台中为您的亚马逊实例配置 IMDS
  1. 打开 Elastic Beanstalk 控制台,然后在 “区域” 列表中,选择您的。 Amazon Web Services 区域

  2. 在导航窗格中,选择 Environments(环境),然后从列表中选择环境的名称。

    注意

    如果您有多个环境,请使用搜索栏筛选环境列表。

  3. 在导航窗格中,选择 Configuration(配置)。

  4. Instance traffic and scaling(实例流量和扩展)配置类别中,选择 Edit(编辑)。

  5. 将 “禁用 IMDSv1” 设置为强制执行 IMDSv2。清除 “禁 IMDSv1用” 可同时启用 IMDSv1 和 IMDSv2。

  6. 要保存更改,请选择页面底部的 Apply(应用)。

aws:autoscaling:launchconfiguration 命名空间

您可以使用 aws:autoscaling:launchconfiguration 命名空间中的配置选项在环境实例上配置 IMDS。

重要

DisableIMDSv1 选项设置可能导致 Elastic Beanstalk 使用启动模板创建环境或将现有环境从启动配置更新为启动模板。这样做需要管理启动模板的必要权限。这些权限包含在我们的托管策略中。如果您使用自定义策略而不是我们的托管策略,则当您为环境启用竞价型实例时,环境创建或更新可能会失败。有关更多信息和其他注意事项,请参阅为你的 Elastic Beanstalk 环境启动模板

以下配置文件示例禁止 IMDSv1 使用该DisableIMDSv1选项。

option_settings: aws:autoscaling:launchconfiguration: DisableIMDSv1: true

将 “禁用 IMDSv1” 设置为 true “禁用” IMDSv1 并强制执行 IMDSv2。

将 “禁用 IMDSv1” 设置为false,可同时启用 IMDSv1 和 IMDSv2。