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

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

EC2 Image Builder 的工作方式

在使用 EC2 Image Builder 管道向导创建自定义镜像时,向导将指导您完成以下步骤。

  1. 指定管道— 输入有关管道的信息,例如名称、描述、标签和运行自动构建的计划。如果您愿意,可以选择手动生成。

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

    注意

    组件是镜像配方或容器配方使用的构建块。例如,安装软件包、安全强化步骤和测试。选定的基本镜像和组件组成了镜像配方。

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

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

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

AMI 元素

Amazon 系统映像 (AMI) 是一个预配置的虚拟机 (VM) 镜像,其中包含用于部署 EC2 实例的操作系统和软件。

AMI 包括以下元素:

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

  • 在使用 Amazon EBS 时,根设备是通过EBS 快照.

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

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

  • 一个独特的资源标识符对于每个地区,每个账户。

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

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

默认配额

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

Amazon 区域和终端节点

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

组件管理

EC2 Image Builder 使用组件管理应用程序EC2 Task Orchestrator and Executor(EC2 TOE),以帮助您编排复杂的工作流程,修改系统配置以及测试基于 YAML 的脚本组件。由于EC2 TOE是一个独立的应用程序,它不需要进行任何额外的设置。它可以在任何云基础设施和本地运行。要开始使用EC2 TOE作为独立应用程序,请参阅开始使用 EC2 TOE.

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

映像测试

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

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

创建的资源

在创建管道时,不会创建 Image Builder 以外的资源,除非以下条件是真的:

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

  • 在选择时运行管道来自 的操作Image Builder 控制台中的菜单

  • 当你从 API 运行这些命令中的任何一个时,或者Amazon CLI:StartImagePipelineExecution或者CreateImage

在镜像生成过程中将创建以下资源:

AMI 映像管道

  • EC2 实例 (temporary

  • Systems Manager 库存协会(通过 Systems Manager 州经理)EnhancedImageMetadata已启用)在 EC2 实例上

  • Amazon EC2 AMI

  • 与 Amazon EC2 AMI 关联的亚马逊 EBS 快照

容器镜像管道

  • 在 EC2 实例上运行的 Docker 容器 (temporary

  • Systems Manager 库存协会(通过 Systems Manager 州经理)EnhancedImageMetadata已启用)在 EC2 实例上

  • Docker 容器映像

  • Dockerfile

在创建镜像后,将删除所有临时资源。

Distribution

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

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

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

共享资源

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

Compliance

对于 CIS,EC2 Image Builder 使用 Amazon Inspector 以评估泄露、漏洞以及不符合最佳实践和合规性标准的情况。例如,它会评估不合预期的网络可访问性、未修补的 CVE、公有 Internet 连接和远程根登录支持。Amazon Inspector 是作为测试组件提供的,您可以选择将其添加到镜像配方中。. 为了进行强化,EC2 Image Builder 使用 STIG 进行验证。有关通过 Image Builder 提供的 STIG 组件的完整列表,请参阅STIG 组件 EC2 Image Builder 组件.