

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 準備使用映像建置器建置自訂映像
<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 代理程式先決條件](#image-builder-SSM-prereq)

符合先決條件後，您可以從下列任一界面管理 EC2 Image Builder。
+ [EC2 Image Builder 主控台](https://console.aws.amazon.com/imagebuilder/)
+ [中的映像建置器命令 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 CLI或 AWS API 中建立第一個 Image Builder 資源時，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)。如需為映像建置器設定 VPC 端點的詳細資訊，請參閱 [映像建置器和 AWS PrivateLink 界面 VPC 端點](vpc-interface-endpoints.md)。
+ 映像建置器用來建置容器映像的執行個體必須具備網際網路存取權，才能 AWS CLI 從 Amazon S3 下載 ，並在適用時從 Docker Hub 儲存庫下載基礎映像。Image Builder 使用 從儲存為資料的容器配方 AWS CLI 取得 Dockerfile。
+ Image Builder 用來建置映像和執行測試的執行個體必須能夠存取 Systems Manager 服務。安裝需求取決於您的作業系統。

  若要查看基礎映像的安裝需求，請選擇符合您基礎映像作業系統的標籤。

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

  對於 Amazon EC2 Linux 執行個體，如果 Systems Manager 代理程式不存在，Image Builder 會在建置執行個體上安裝它，並在建立映像之前將其移除。

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

  Image Builder 不會在 Amazon EC2 Windows Server 建置執行個體上安裝 Systems Manager Agent。如果您的基礎映像未預先安裝 Systems Manager 代理程式，您必須從來源映像啟動執行個體，在執行個體上手動安裝 Systems Manager，並從執行個體建立新的基礎映像。

  若要在 Amazon EC2 Windows Server 執行個體上手動安裝 Systems Manager 代理程式，請參閱*AWS Systems Manager 《 使用者指南*》中的在 [Windows Server 的 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 Container Registry 使用者指南*》中[建立儲存庫](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)。 *Amazon EC2 *

當您建立專用主機時，您可以在映像的基礎設施組態資源中設定 設定。基礎設施組態包含置放屬性，您可以在其中指定從映像啟動的執行個體應前往的主機、主機置放群組或可用區域。

## 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)
+ AmazonSSMManagedInstanceCore

如果您設定記錄，則基礎設施組態中指定的執行個體描述檔必須具有目標儲存貯體 () 的`s3:PutObject`許可`arn:aws:s3:::BucketName/*`。例如：

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

****  

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

------

**連接政策**  
下列步驟會引導您完成將 IAM 政策連接至 IAM 角色的程序，以授予上述許可。

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在左側導覽窗格中選擇 **Policies** (政策)。

1. 使用 篩選政策清單 **EC2InstanceProfileForImageBuilder**

1. 選取政策旁的項目符號，然後從**政策動作**下拉式清單中選取**連接**。

1. 選取要連接政策的 IAM 角色名稱。

1. 選擇**連接政策**。

1. 針對 **EC2InstanceProfileForImageBuilderECRContainerBuilds**和 **AmazonSSMManagedInstanceCore** 政策重複步驟 3-6。

**注意**  
如果您想要將以 Image Builder 建立的映像複製到另一個帳戶，則必須在所有目標帳戶中建立`EC2ImageBuilderDistributionCrossAccountRole`角色，並將 [Ec2ImageBuilderCrossAccountDistributionAccess 政策](security-iam-awsmanpol.md#sec-iam-manpol-Ec2ImageBuilderCrossAccountDistributionAccess)受管政策連接到角色。如需詳細資訊，請參閱[與 共用映像建置器資源 AWS RAM](manage-shared-resources.md)。

## Systems Manager 代理程式先決條件
<a name="image-builder-SSM-prereq"></a>

EC2 Image Builder 會在啟動的 EC2 執行個體上執行 [AWS Systems Manager (Systems Manager) Agent](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) 名稱和版本，以及您作業系統報告的套件清單及其個別版本。

若要選擇不收集此資訊，請選取符合您偏好環境的方法：
+ **映像建置器主控台** – 取消選取**啟用增強型中繼資料收集**核取方塊。
+ **AWS CLI** – 指定 `--no-enhanced-image-metadata-enabled`選項
+ **Image Builder API SDKs** – 將 `enhancedImageMetadataEnabled` 參數設定為 `false`。

Image Builder 使用 `RunCommand` 將動作傳送至您的建置和測試執行個體，做為映像建置和測試工作流程的一部分。您無法選擇不使用 `RunCommand`將動作傳送至您的建置和測試執行個體。