

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

# 可驗證的 AMI
<a name="attestable-ami"></a>

可驗證的 AMI 是一種 Amazon Machine Image (AMI)，包含代表其全部內容的對應密碼編譯雜湊。AMI 建立程序期間會生成雜湊，且依據該 AMI 的整個內容進行計算，包括應用程式、程式碼，以及啟動程序。

## 維護可驗證狀態
<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**
+ [維護可驗證狀態](#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 生成的統一核心映像 (UKI) 來生成參考衡量項。若要了解使用 `nitro-tpm-pcr-compute` 公用程式的相關詳細資訊，請參閱 [使用自訂 AMI 的運算 PCR 衡量項](create-pcr-compute.md)。

AWS 提供範例 Amazon Linux 2023 映像描述，其中包含在隔離的運算環境中設定 EC2 執行個體所需的所有組態。如需詳細資訊，請參閱[建置範例 Amazon Linux 2023 映像說明](build-sample-ami.md)。