

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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 エージェントの前提条件](#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 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) をサポートしています。Image Builder の VPC エンドポイントの設定の詳細については、「[Image Builder と AWS PrivateLink インターフェイス VPC エンドポイント](vpc-interface-endpoints.md)」を参照してください。
+ Image Builder がコンテナイメージの構築に使用するインスタンスには、Amazon S3 AWS CLI から をダウンロードし、該当する場合は Docker Hub リポジトリからベースイメージをダウンロードするためのインターネットアクセスが必要です。Image Builder は AWS CLI を使用してコンテナレシピから Dockerfile を取得し、そこでデータとして保存されます。
+ Image Builder がイメージの構築とテストの実行に使用するインスタンスには、Systems Manager サービスへのアクセス権が必要です。インストール要件はオペレーティングシステムによって異なります。

  ベースイメージのインストール要件を確認するには、ベースイメージのオペレーティングシステムに合ったタブを選択してください。

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

  Amazon EC2 Linux インスタンスの場合、Image Builder はビルドインスタンスに Systems Manager エージェントがまだ存在しない場合はそれをインストールし、イメージを作成する前に削除します。

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

  Image Builder は、Amazon EC2 Windows インスタンスに Systems Manager エージェントを自動ではインストールしません。基本イメージに Systems Manager エージェントがあらかじめインストールされていない場合は、ソースイメージからインスタンスを起動し、そのインスタンスに Systems Manager を手動でインストールして、インスタンスから新しい基本イメージを作成する必要があります。

  Amazon EC2 Windows Server インスタンスに Systems Manager エージェントを手動でインストールするには、AWS Systems Manager ユーザーガイドの [Manually install Systems Manager Agent on EC2 instances for Windows Server](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 User Guide の [Creating a repository](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)
+ AmazonSSMManagedInstanceCore

ロギングを設定する場合、インフラストラクチャ構成で指定されたインスタンスプロファイルは、ターゲットバケット(`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 マネジメントコンソールにサインインし、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. 左のナビゲーションペインの **[ポリシー]** を選択します。

1. **EC2InstanceProfileForImageBuilder** でポリシーのリストをフィルタリングする

1. ポリシーの横にあるブレット記号を選択し、**[ポリシーアクション]** ドロップダウンリストから **[添付]** を選択します。

1. ポリシーを添付する IAM ロールの名前を選択します。

1. **[Attach policy]** (ポリシーのアタッチ) を選択します。

1. **EC2InstanceProfileForImageBuilderECRContainerBuilds** および **AmazonSSMManagedInstanceCore** ポリシーについて、ステップ 3～6 を繰り返します。

**注記**  
Image Builder で作成したイメージを別のアカウントにコピーする場合は、すべてのターゲットアカウントで `EC2ImageBuilderDistributionCrossAccountRole` ロールを作成し、「[Ec2ImageBuilderCrossAccountDistributionAccess ポリシー](security-iam-awsmanpol.md#sec-iam-manpol-Ec2ImageBuilderCrossAccountDistributionAccess)」管理ポリシーをロールにアタッチする必要があります。詳細については、「[Image Builder リソースを と共有する AWS RAM](manage-shared-resources.md)」を参照してください。

## Systems Manager エージェントの前提条件
<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` オプションを指定します。
+ **Image Builder API または SDK** — `enhancedImageMetadataEnabled` パラメータを `false` に設定します。

Image Builder は、`RunCommand` でイメージのビルドとテストのワークフローの一部として、ビルドインスタンスとテストインスタンスにアクションを送信します。`RunCommand` でビルドインスタンスとテストインスタンスへのアクション送信にの使用をオプトアウトすることはできません。