

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

# 准备好使用 Image Builder 构建自定义映像
<a name="set-up-ib-env"></a>

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

**Topics**
+ [Image Builder 服务相关角色](#prereq-slr)
+ [配置要求](#prereq-config)
+ [适用于容器映像管道的容器存储库](#start-prereq-container)
+ [保存 macOS 映像的专属主机](#start-prereq-macos-host)
+ [IAM 先决条件](#image-builder-IAM-prereq)
+ [Systems Manager Agent 先决条件](#image-builder-SSM-prereq)

满足先决条件后，您可以通过以下任一界面管理 EC2 Image Builder。
+ [EC2 Image Builder 控制台](https://console.aws.amazon.com/imagebuilder/)
+ [中的 Image Builder 命令 AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/index.html)
+ [EC2 Image Builder API 参考](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/)
+ [AWS SDKs 和工具](https://aws.amazon.com/developer/tools/)

## Image Builder 服务相关角色
<a name="prereq-slr"></a>

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

## 配置要求
<a name="prereq-config"></a>
+ Image Builder 支持 [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-share-your-services.html)。有关为 Image Builder 配置 VPC 终端节点的更多信息，请参阅 [Image Builder 和 AWS PrivateLink 接口 VPC 终端节点](vpc-interface-endpoints.md)。
+ Image Builder 用于构建容器映像的实例必须具有互联网访问权限才能 AWS CLI 从 Amazon S3 下载容器映像，并从 Docker Hub 存储库下载基础映像（如果适用）。Image Builder 使用从容器配方中获取 Dockerfile，该文件作为数据存储。 AWS CLI 
+ Image Builder 用于构建映像和运行测试的实例必须有权访问 Systems Manager 服务。安装要求取决于您的操作系统。

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

------
#### [ Linux ]

  对于 Amazon EC2 Linux 实例，如果尚未安装 Systems Manager 代理，Image Builder 会在构建实例上安装该代理，并在创建映像前将其移除。

------
#### [ Windows ]

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

  要在 Amazon EC2 Windows 服务器实例上手动安装 Systems Manager 代理，请参阅 *AWS Systems Manager 用户指南*中的[在 Windows 服务器的 EC2 实例上手动安装 Systems Manager 代理](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-windows.html)。

------

## 适用于容器映像管道的容器存储库
<a name="start-prereq-container"></a>

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

Image Builder 使用 Amazon ECR 作为其容器映像的目标存储库。要创建 Amazon ECR 存储库，请按照 *Amazon Elastic 容器注册表用户指南*中的[创建存储库](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html)所述步骤进行操作。

## 保存 macOS 映像的专属主机
<a name="start-prereq-macos-host"></a>

Amazon EC2 Mac 实例需要一个运行于裸机实例类型的专属主机。在创建自定义 macOS 映像之前，必须为您的账户[分配专属主机](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-allocating.html)。有关 Mac 实例的更多信息以及原生支持 macOS 操作系统的实例类型列表，请参阅《Amazon EC2 用户指南》**中的 [Amazon EC2 Mac 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-mac-instances.html)。

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

## IAM 先决条件
<a name="image-builder-IAM-prereq"></a>

与实例配置文件关联的 IAM 角色必须有权运行映像中包含的生成和测试组件。必须将以下 IAM 角色策略附加到与实例配置文件关联的 IAM 角色：
+ [EC2InstanceProfileForImageBuilder](security-iam-awsmanpol.md#sec-iam-manpol-EC2InstanceProfileForImageBuilder)
+ [EC2InstanceProfileForImageBuilderECRContainerBuilds](security-iam-awsmanpol.md#sec-iam-manpol-EC2InstanceProfileForImageBuilderECRContainerBuilds)
+ Amazon SSMManaged InstanceCore

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

------
#### [ JSON ]

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "UploadFileToS3Bucket",
			"Effect": "Allow",
			"Action": "s3:PutObject",
			"Resource": "arn:aws:s3:::{{bucket-name}}/*"
		}
	]
}
```

------

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

1. 登录 AWS 管理控制台并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在左侧导航窗格中，选择 **Policies（策略）**。

1. 使用 **EC2InstanceProfileForImageBuilder** 筛选策略列表

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

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

1. 选择 **Attach policy**（附加策略）。

1. 对**EC2InstanceProfileForImageBuilderECRContainerBuilds**和 **Amazon SSMManaged InstanceCore** 政策重复步骤 3-6。

**注意**  
如果要将使用 Image Builder 创建的映像复制到另一个账户，则必须在所有目标账户中创建 `EC2ImageBuilderDistributionCrossAccountRole` 角色，并将 [Ec2ImageBuilderCrossAccountDistributionAccess 策略](security-iam-awsmanpol.md#sec-iam-manpol-Ec2ImageBuilderCrossAccountDistributionAccess) 托管策略附加到该角色。有关更多信息，请参阅 [与共享 Image Builder 资源 AWS RAM](manage-shared-resources.md)。

## Systems Manager Agent 先决条件
<a name="image-builder-SSM-prereq"></a>

EC2 Image Builder 在其启动的 EC2 实例上运行 [AWS Systems Manager （Systems Manager）代理](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html)，以构建和测试映像。Image Builder 使用 [Systems Manager 清单](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-inventory.html)，以收集在构建阶段使用的实例的其他信息。该信息包括操作系统 (OS) 名称和版本，以及操作系统报告的软件包及其相应版本的列表。

要选择不收集此信息，请选择与您的首选环境相匹配的方法：
+ **Image Builder 控制台** – 取消选择**启用增强的元数据收集**复选框。
+ **AWS CLI** – 指定 `--no-enhanced-image-metadata-enabled` 选项
+ I@@ **mage Builder API 或 SDKs** — 将`enhancedImageMetadataEnabled`参数设置为`false`。

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