准备好使用 Image Builder 构建自定义映像 - EC2 Image Builder

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

准备好使用 Image Builder 构建自定义映像

在使用 EC2 Image Builder 构建映像之前,请确认您已满足创建映像管道的以下先决条件。除非另有说明,否则所有类型的管道都需要满足这些先决条件。

满足先决条件后,您可以通过以下任何界面管理 EC2 Image Builder。

Image Builder 服务相关角色

EC2 Image Builder 使用服务相关角色代表您向其他 AWS 服务授予权限。您无需手动创建服务相关角色。当您在 AWS 管理控制台、或 AWS API 中创建第一个 Image Builder 资源时,Image Builder 会为您创建服务相关角色。 AWS CLI有关 Image Builder 在您的账户中创建服务相关角色的更多信息,请参阅 使用 Image Builder 的 IAM 服务相关角色

配置要求

  • Image Builder 支持 AWS PrivateLink。有关为 Image Builder 配置 VPC 终端节点的更多信息,请参阅 Image Builder 和 AWS PrivateLink 接口 VPC 终端节点

  • Image Builder 用于构建容器映像的实例必须具有互联网访问权限才能 AWS CLI 从 Amazon S3 下载容器映像,并从 Docker Hub 存储库下载基础映像(如果适用)。Image Builder 使用从容器配方中获取 Dockerfile,该文件作为数据存储。 AWS CLI

  • Image Builder 用于构建映像和运行测试的实例必须有权访问 Systems Manager 服务。安装要求取决于您的操作系统。

    要查看基础映像的安装要求,请选择与基础映像操作系统相匹配的选项卡。

    Linux

    对于 Amazon EC2 Linux 实例,Image Builder 会在构建实例上安装 Systems Manager 代理(如果尚不存在),并在创建映像之前将其删除。

    Windows

    Image Builder 不会在亚马逊 EC2 Windows 服务器构建实例上安装 Systems Manager 代理。如果基础映像未预装 Systems Manager 代理,则必须从源映像启动实例,在实例上手动安装 Systems Manager,然后从实例创建新的基础映像。

    要在您的亚马逊 EC2 Windows 服务器实例上手动安装 Systems Manager 代理,请参阅AWS Systems Manager 用户指南中的在 Windows 服务器 EC2 实例上手动安装 System s Manager 代理。

    macOS

    待定——需要一些关于先决条件的知识

适用于容器映像管道的容器存储库

对于容器映像管道,配方定义了生成并存储在目标容器存储库中的 Docker 映像的配置。在为 Docker 映像创建容器配方之前,您必须先创建目标存储库。

Image Builder 使用 Amazon ECR 作为其容器映像的目标存储库。要创建 Amazon ECR 存储库,请按照 Amazon Elastic 容器注册表用户指南中的创建存储库所述步骤进行操作。

保存 macOS 映像的专属主机

Amazon EC2 Mac 实例需要在金属实例类型上运行的专用主机。在创建自定义 macOS 映像之前,必须为您的账户分配专属主机有关 Mac 实例的更多信息以及原生支持 macOS 操作系统的实例类型列表,请参阅亚马逊用户指南中的 EC2 亚马逊 Mac 实例。 EC2

创建专属主机后,可以在基础设施配置资源中为映像配置设置。基础设施配置包括放置属性,您可以在其中指定从映像启动的实例应保存到的主机、主机置放群组或可用区。

IAM 先决条件

与实例配置文件关联的 IAM 角色必须有权运行映像中包含的生成和测试组件。必须将以下 IAM 角色策略附加到与实例配置文件关联的 IAM 角色:

如果配置日志记录,在基础设施配置中指定的实例配置文件必须具有目标存储桶 (arn:aws:s3:::BucketName/*) 的 s3:PutObject 权限。例如:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::bucket-name/*" } ] }
附加策略

以下步骤将指导您完成将 IAM 策略附加到 IAM 角色以授予上述权限的过程。

  1. 登录 AWS 管理控制台并打开 IAM 控制台,网址为https://console.aws.amazon.com/iam/

  2. 在左侧导航窗格中,选择 Policies(策略)

  3. 使用 筛选策略列表EC2InstanceProfileForImageBuilder

  4. 选择策略旁边的项目符号,然后在策略操作下拉列表中选择附加

  5. 选择要附加该策略的 IAM 角色的名称。

  6. 选择 Attach policy(附加策略)。

  7. 重复步骤 3-6 EC2InstanceProfileForImageBuilderECRContainerBuilds亚马逊SSMManagedInstanceCore政策。

注意

如果要将使用 Image Builder 创建的映像复制到另一个账户,则必须在所有目标账户中创建 EC2ImageBuilderDistributionCrossAccountRole 角色,并将 Ec2ImageBuilderCrossAccountDistributionAccess policy 托管策略附加到该角色。有关更多信息,请参阅 与共享 Image Builder 资源 AWS RAM

Systems Manager Agent 先决条件

EC2 Image Builder 在其启动的 EC2 实例上运行 AWS Systems Manager (Systems Manager)代理,以构建和测试您的映像。Image Builder 使用 Systems Manager 清单,以收集在构建阶段使用的实例的其他信息。该信息包括操作系统 (OS) 名称和版本,以及操作系统报告的软件包及其相应版本的列表。

要选择不收集此信息,请选择与您的首选环境相匹配的方法:

  • Image Builder 控制台 – 取消选择启用增强的元数据收集复选框。

  • AWS CLI – 指定 --no-enhanced-image-metadata-enabled 选项

  • I@@ mage Builder API 或 SDKs — 将enhancedImageMetadataEnabled参数设置为false

Image Builder 使用 RunCommand 将操作发送到生成和测试实例,以作为映像构建和测试工作流程的一部分。您不能选择停止使用 RunCommand 将操作发送到生成和测试实例。