EC2 Image Builder 的工作方式 - EC2 Image Builder
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

EC2 Image Builder 的工作方式

在使用 控制台创建黄金镜像时,向导将指导您完成以下步骤。

  1. 指定管道详细信息-输入有关您管道的信息,例如名称、描述、标签和运行自动构建的计划。您也可以选择手动构建。

  2. 选择配方-在构建 AMI 或构建容器映像之间进行选择。对于这两种类型的输出映像,您可以输入配方的名称和版本,选择基础映像,然后选择要添加的组件以进行构建和测试。您也可以选择自动版本控制,以确保您的基础映像始终使用最新的可用操作系统 (OS) 版本。容器配方还定义了 Dockerfiles 以及输出 Docker 容器映像的目标 Amazon ECR 存储库。

    注意

    组件是映像配方或容器配方所消耗的构建基块。例如,安装软件包、安全强化步骤和测试。选定的操作系统和组件组成了镜像配方。

  3. 定义基础设施配置-Image Builder 在您的账户中启动 EC2 实例,以自定义映像和运行验证测试。基础设施配置设置为实例指定基础设施详细信息,该实例为在构建过程中运行于您 Amazon Web Services 账户 中的实例。

  4. 定义分配设置-在构建完成并通过所有测试后,选择要将映像分配到的 Amazon 区域。管道会自动将您的映像分配到它运行构建的区域,并且您可以为其他区域添加映像分配。

您根据自定义基础映像构建的映像位于您的 Amazon Web Services 账户。您可以输入生成计划,以便配置镜像管道以生成更新和修补的 AMI 版本。在生成完成后,您可以通过 Amazon Simple Notification Service (SNS) 接收通知。除了生成最终镜像以外, 还会生成一个镜像配方,可以将其与现有版本控制系统和持续集成/持续部署 (CI/CD) 管道一起使用以实现可重复的自动化。您可以共享镜像配方和创建新的镜像配方版本。

AMI 元素

它是预配置的 Machine Image (AMI),其中包含用于部署 EC2 实例的操作系统和软件

AMI 包括以下内容:

  • 虚拟机根卷的模板。在启动 EC2 虚拟机时,根设备卷包含用于引导实例的镜像。在使用实例存储时,根设备是通过 中的模板创建的实例存储卷。有关更多信息,请参阅 Amazon EC2 根设备卷

  • 在使用 时,根设备是通过 EBS 快照创建的 EBS 卷

  • 启动权限,用于确定可以使用 AMI 启动虚拟机的 Amazon Web Services 账户 账户。

  • 块储存设备映射数据,用于指定在启动后附加到实例的卷。

  • 每个区域、每个账户的唯一资源标识符

  • 元数据负载(例如标签)和属性(例如区域、操作系统、架构、根设备类型、提供程序、启动权限、根设备存储以及签名状态)。

  • AMI 签名,用于防止未经授权的篡改。有关更多信息,请参阅实例身份文档

默认限额

要查看 的默认配额,请参阅 EC2 Image Builder 终端节点和配额。

Amazon 区域和端点

要查看 的服务终端节点,请参阅 EC2 Image Builder 终端节点和配额。

组件管理

使用组件管理应用程序,以帮助您编排复杂的工作流程,修改系统配置以及测试系统,而无需编写代码。由于它是一个单独的应用程序,因此,它不需要进行额外的服务器设置。它可以在任何云基础设施和本地运行。要开始使用 EC2 TOE 将其用作独立应用程序,请参阅 开始使用 EC2 TOE

Image Builder 使用 EC2 TOE 执行所有实例上的活动。其中包括在拍摄快照之前构建和验证映像,以及在创建最终映像之前测试快照以确保其按预期运行。有关 Image Builder 如何使用 EC2 TOE 管理其组件的更多信息,请参阅 使用 Image Builder 管理组件。有关创建 VPC 以与 EC2 TOE 结合使用的详细信息,请参阅 EC2 Task Orchestrator and Executor 组件管理器

映像测试

在创建最终映像之前,您可以使用 EC2 TOE 测试组件来验证映像,并确保其按预期运行。

通常,每个测试包含测试脚本、测试二进制文件和测试元数据。测试脚本包含用于启动测试二进制文件的编排命令,可以使用操作系统支持的任何语言编写该测试二进制文件。退出状态代码指示测试结果。测试元数据描述测试及其行为(例如,名称、描述、测试二进制文件路径以及预期的持续时间)。

创建的资源

创建管道时,除非满足以下条件,否则不会创建 Image Builder 外部的资源:

  • 通过管道计划创建映像时

  • 当您从 Image Builder 控制台的操作菜单中选择运行管道

  • 当你从 API 或者 Amazon CLI:StartImagePipelineExecutionCreateImage 运行以下任一命令时

以下资源是在映像构建过程中创建的:

镜像管道
  • EC2 实例(临时性

  • EC2 实例上的 Systems Manager Inventory 关联(如果 EnhancedImageMetadata 已启用,则通过 Systems Manager State Manager)

  • Amazon EC2 AMI

  • 与 Amazon EC2 AMI 关联的 Amazon EBS 快照

容器映像管道
  • 在 EC2 实例上运行的 Docker 容器(临时性

  • EC2 实例上的 Systems Manager Inventory 关联(如果 EnhancedImageMetadata 已启用,则通过 Systems Manager State Manager)

  • Docker 容器映像

  • Dockerfile

创建映像后,所有临时资源都将被删除。

发行版

EC2 Image Builder 可以将 AMI 或容器映像分配到任何 Amazon 区域。AMI 将复制到您在用于生成镜像的账户中指定的每个区域。

您可以定义 AMI 启动权限,以控制允许哪些 Amazon Web Services 账户 账户使用创建的 AMI 启动 EC2 实例。例如,您可以将镜像设置为私有、公有或与特定账户共享。如果您将 AMI 分发到其他区域并为其他账户定义启动权限,启动权限将传播到分发了 AMI 的所有区域中的 AMI。

要使用 Image Builder 控制台更新您的分配设置,请按照 创建新的映像配方版本(控制台)使用控制台创建新的容器配方版本 的步骤操作。

共享资源

要在账户之间或在 Amazon Organizations 中共享组件、镜像配方或镜像,请参阅共享 EC2 Image Builder 资源

合规

对于 CIS, 使用 自动评估泄露、漏洞以及不符合最佳实践和合规性标准的情况。例如,Image Builder 会评估意外网络可访问性、未修补的 CVE、公共互联网连接和远程根登录激活。Amazon Inspector 作为测试组件提供,您可以选择将其添加到您的映像配方中。有关更多信息,请参阅《Amazon Inspector 用户指南》中的 Amazon Inspector 配额。为了进行强化,EC2 Image Builder 使用 STIG 进行验证。有关通过 提供的 STIG 组件的完整列表,请参阅 。