准备好使用 Image Builder 构建自定义映像
使用 EC2 Image Builder 创建映像之前,请验证您是否满足创建映像管道的以下先决条件。除非另有说明,否则所有类型的管道都需要满足这些先决条件。
满足先决条件后,您可以通过以下任一界面管理 EC2 Image Builder。
Image Builder 服务相关角色
EC2 Image Builder 使用服务相关角色代表您为其他 Amazon 服务授予权限。您无需手动创建服务相关角色。当您在 Amazon 管理控制台、Amazon CLI 或 Amazon API 中创建第一个 Image Builder 资源时,Image Builder 将为您创建服务相关角色。有关 Image Builder 在您的账户中创建服务相关角色的更多信息,请参阅 使用 Image Builder 的 IAM 服务相关角色。
配置要求
-
Image Builder 支持 Amazon PrivateLink。有关为 Image Builder 配置 VPC 终端节点的更多信息,请参阅 Image Builder 和 Amazon PrivateLink 接口 VPC 端点。
-
Image Builder 用于构建容器映像的实例必须具有互联网访问权限,以便从 Amazon S3 下载 Amazon CLI,(如适用)并从 Docker Hub 存储库下载基础映像。Image Builder 使用 Amazon CLI 从容器配方中获取 Dockerfile,并将其存储为数据。
-
Image Builder 用于构建映像和运行测试的实例必须有权访问 Systems Manager 服务。安装要求取决于您的操作系统。
要查看基础映像的安装要求,请选择与基础映像操作系统相匹配的选项卡。
适用于容器映像管道的容器存储库
对于容器映像管道,配方定义了生成并存储在目标容器存储库中的 Docker 映像的配置。在为 Docker 映像创建容器配方之前,您必须先创建目标存储库。
Image Builder 使用 Amazon ECR 作为其容器映像的目标存储库。要创建 Amazon ECR 存储库,请按照 Amazon Elastic 容器注册表用户指南中的创建存储库所述步骤进行操作。
保存 macOS 映像的专属主机
Amazon EC2 Mac 实例需要一个运行于裸机实例类型的专属主机。在创建自定义 macOS 映像之前,必须为您的账户分配专属主机。有关 Mac 实例的更多信息以及原生支持 macOS 操作系统的实例类型列表,请参阅《Amazon EC2 用户指南》中的 Amazon EC2 Mac 实例。
创建专属主机后,可以在基础设施配置资源中为映像配置设置。基础设施配置包括放置属性,您可以在其中指定从映像启动的实例应保存到的主机、主机置放群组或可用区。
IAM 先决条件
与实例配置文件关联的 IAM 角色必须有权运行映像中包含的生成和测试组件。必须将以下 IAM 角色策略附加到与实例配置文件关联的 IAM 角色:
-
AmazonSSMManagedInstanceCore
如果配置日志记录,在基础设施配置中指定的实例配置文件必须具有目标存储桶 (arn:aws:s3:::
) 的 BucketName
/*s3:PutObject
权限。例如:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::
bucket-name
/*" } ] }
附加策略
以下步骤将指导您完成将 IAM 策略附加到 IAM 角色以授予上述权限的过程。
-
登录 Amazon 管理控制台,并通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在左侧导航窗格中,选择 Policies(策略)。
-
使用 EC2InstanceProfileForImageBuilder 筛选策略列表
-
选择策略旁边的项目符号,然后在策略操作下拉列表中选择附加。
-
选择要附加该策略的 IAM 角色的名称。
-
选择 Attach policy(附加策略)。
-
对于 EC2InstanceProfileForImageBuilderECRContainerBuilds 和 AmazonSSMManagedInstanceCore 策略,重复步骤 3-6。
注意
如果要将使用 Image Builder 创建的映像复制到另一个账户,则必须在所有目标账户中创建 EC2ImageBuilderDistributionCrossAccountRole
角色,并将 Ec2ImageBuilderCrossAccountDistributionAccess 策略 托管策略附加到该角色。有关更多信息,请参阅 与 Amazon RAM 共享 Image Builder 资源。
Systems Manager Agent 先决条件
EC2 Image Builder 在其启动的 EC2 实例上运行 Amazon Systems Manager(Systems Manager)代理,以构建和测试映像。Image Builder 使用 Systems Manager 清单,以收集在构建阶段使用的实例的其他信息。该信息包括操作系统 (OS) 名称和版本,以及操作系统报告的软件包及其相应版本的列表。
要选择不收集此信息,请选择与您的首选环境相匹配的方法:
-
Image Builder 控制台 – 取消选择启用增强的元数据收集复选框。
-
Amazon CLI – 指定
--no-enhanced-image-metadata-enabled
选项 -
Image Builder API 或 SDK – 将
enhancedImageMetadataEnabled
参数设置为false
。
Image Builder 使用 RunCommand
将操作发送到生成和测试实例,以作为映像构建和测试工作流程的一部分。您不能选择停止使用 RunCommand
将操作发送到生成和测试实例。