

# 構成証明可能 AMI
<a name="attestable-ami"></a>

構成証明可能 AMI は、すべてのコンテンツを表す対応する暗号化ハッシュを持つ Amazon マシンイメージ (AMI) です。ハッシュは AMI の作成プロセス中に生成され、アプリケーション、コード、起動プロセスなど、その AMI のコンテンツ全体に基づいて計算されます。

## Attestable State の維持
<a name="maintain-attestability"></a>

インスタンスの測定値は、初期起動状態に基づいています。起動後にインスタンスでソフトウェアまたはコードが変更され、再起動後も保持されていると、再起動後にインスタンスの測定値が変更されます。測定値が変更されると、構成証明可能 AMI のリファレンス測定値から逸脱し、インスタンスの再起動後にインスタンスは AWS KMS に対して正常にアテステーションができなくなります。したがって、構成証明可能 AMI が役立つように、インスタンスは再起動後に元のブート状態に戻る必要があります。

常に元のブート状態に戻るようにすると、インスタンスは再起動後に正常にアテステーションができます。次のユーティリティを使用して、再起動後もインスタンスのアテステーションを可能にできます。
+ `erofs` – 拡張読み取り専用ファイルシステム。このユーティリティにより、ルートファイルシステムが読み取り専用になります。このユーティリティを使用すると、`/etc`、`/run`、`/var` などのファイルシステムへの書き込みはメモリに保存され、インスタンスの再起動時に失われるため、ルートファイルシステムは元の起動状態のままになります。詳細については、[erofs のドキュメント](https://docs.kernel.org/filesystems/erofs.html)を参照してください。
+ `dm-verity` – 読み取り専用ルートファイルシステムの整合性を保護します。このユーティリティはファイルシステムブロックのハッシュを計算し、カーネルコマンドラインに保存します。これにより、カーネルは起動時にファイルシステムの整合性を検証できます。詳細については、[dm-verity のドキュメント](https://docs.kernel.org/admin-guide/device-mapper/verity.html)を参照してください。

## 構成証明可能 AMI を作成するための要件
<a name="ami-attestable-requirements"></a>

構成証明可能 AMI には以下の要件があります。
+ **ベースとなるオペレーティングシステム** – Amazon Linux 2023 および [NixOS](https://github.com/aws/nitrotpm-attestation-samples)
+ **アーキテクチャ** – `x86_64` または `arm64` アーキテクチャ
+ **TPM サポート** – NitroTPM を有効にする必要があります。詳細については、「[Amazon EC2 インスタンスで NitroTPM を使用するための要件](enable-nitrotpm-prerequisites.md)」を参照してください。
+ **ブートモード** – UEFI ブートモードを有効にする必要があります。

**Topics**
+ [Attestable State の維持](#maintain-attestability)
+ [構成証明可能 AMI を作成するための要件](#ami-attestable-requirements)
+ [構成証明可能 AMI の作成](#sample-ami)
+ [サンプルイメージの説明を作成する](build-sample-ami.md)
+ [Amazon Linux 2023 のサンプルイメージの説明](al2023-isolated-compute-recipe.md)
+ [サンプルイメージの説明をカスタマイズする](customize-sample-ami.md)
+ [PCR 測定値を計算する](create-pcr-compute.md)

## 構成証明可能 AMI の作成
<a name="sample-ami"></a>

構成証明可能 AMI を作成するには、[KIWI Next Generation (KIWI NG)](https://osinside.github.io/kiwi/) で Amazon Linux 2023 を使用する必要があります。Amazon Linux 2023 は、KIWI NG を使用して構成証明可能 AMI を構築するために必要なすべてのソフトウェアとユーティリティを提供します。

KIWI NG は、事前設定された Linux ベースのイメージを構築するためのオープンソースツールです。KIWI NG は、イメージの内容を定義する XML による*イメージの説明*を使用します。イメージの説明では、特定のユースケース向けにすぐに使用できる AMI を構築するために実行するベースオペレーティングシステム、ソフトウェア、カーネル設定、スクリプトを指定します。

AMI のビルド時は、`nitro-tpm-pcr-compute` ユーティリティを使用して、KIWI NG によって生成された Unified Kernel Image (UKI) に基づいてリファレンス測定値を生成する必要があります。`nitro-tpm-pcr-compute` ユーティリティの使用に関する詳細については、「[カスタム AMI の PCR 測定値を計算する](create-pcr-compute.md)」を参照してください。

AWS は、分離されたコンピューティング環境で EC2 インスタンスを設定するために必要なすべての設定を含む Amazon Linux 2023 のサンプルイメージの説明を提供します。詳細については、「[Amazon Linux 2023 のサンプルイメージの説明を作成する](build-sample-ami.md)」を参照してください。