

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

# 獲取 NitroTPM 驗證文件
<a name="attestation-get-doc"></a>

驗證文件是 NitroTPM 驗證程序的關鍵元件。該文件包含一系列密碼編譯衡量項，可用於確認執行個體身分，以及證明其僅執行可信軟體。您可以搭配 使用 證明文件 AWS KMS，該文件提供 NitroTPM 證明的內建支援，或建置您自己的密碼編譯證明機制。

使用 `nitro-tpm-attest` 公用程式，您可在執行時期針對 Amazon EC2 執行個體，擷取簽署的 NitroTPM 驗證文件。

範例 Amazon Linux 2023 映像說明可在 `/usr/bin/` 目錄的建置映像中，自動安裝公用程式。這樣一來，確保公用程式會預先安裝在使用 AMI 啟動的執行個體上。您無須手動安裝公用程式。如需詳細資訊，請參閱[建置範例 Amazon Linux 2023 映像說明](build-sample-ami.md)。

**Topics**
+ [安裝 `nitro-tpm-attest` 公用程式](#nitro-tpm-attest-install)
+ [使用 `nitro-tpm-attest` 公用程式](#nitro-tpm-attest-use)
+ [NitroTPM 驗證文件](nitrotpm-attestation-document-content.md)
+ [確認驗證文件](nitrotpm-attestation-document-validate.md)

## 安裝 `nitro-tpm-attest` 公用程式
<a name="nitro-tpm-attest-install"></a>

若使用 Amazon Linux 2023，則您可如下所示透過 Amazon Linux 儲存庫安裝 `nitro-tpm-attest` 公用程式。

```
sudo yum install aws-nitro-tpm-tools
```

## 使用 `nitro-tpm-attest` 公用程式
<a name="nitro-tpm-attest-use"></a>

公用程式提供單一命令 `nitro-tpm-attest`，以便擷取驗證文件。命令可傳回以 Concise Binary Object Representation (CBOR) 編碼，以及使用 CBOR 物件簽署及加密 (COSE) 簽署的驗證文件。

當您執行命令時，可以指定下列選用參數：
+ `public-key` — 可由 AWS KMS 或外部服務用來在傳回回應資料之前加密回應資料的公有金鑰。該金鑰可確保僅擁有私有金鑰的預期收件者才可對資料解密。例如，如果您使用 進行證明 AWS KMS，服務會使用證明文件中的公有金鑰加密純文字資料，並在回應的 `CiphertextForRecipient` 欄位中傳回產生的加密文字。僅支援 RSA 金鑰。
+ `user-data` – 使用者資料可用於傳遞任何額外簽署的資料至外部服務。可使用此使用者資料，完成請求執行個體與外部服務間達成的協定。不適用於 的證明 AWS KMS。
+ `nonce` – 可使用 nonce 在執行個體與外部服務間設定挑戰-回應驗證，以便協助阻止模擬攻擊。使用 nonce 可讓外部服務確認其是否與即時執行個體，而非與重複使用舊驗證文件的冒充者互動。不適用於 的證明 AWS KMS。

**如需擷取驗證文件**  
請使用下列命令和選用參數：

```
/usr/bin/nitro-tpm-attest \
--public-key {{rsa_public_key}} \
--user-data {{user_data}} \
--nonce {{nonce}}
```

若要了解展示如何生成 RSA 金鑰對，以及如何透過公有金鑰來請求驗證的完整範例，請參閱 [nitro-tpm-attest GitHub 儲存庫](https://github.com/aws/NitroTPM-Tools/)。