

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

# AWS KMS 準備證明
<a name="prepare-attestation-service"></a>

**注意**  
若要對第三方服務進行驗證，必須建置您自己的自訂機制，以便接收、剖析及確認驗證文件。如需詳細資訊，請參閱[確認 NitroTPM 驗證文件](nitrotpm-attestation-document-validate.md)。

建立可認證 AMI 之後，您應該有參考測量，可用來驗證來自 Amazon EC2 執行個體的請求。 AWS KMS 提供內建的 NitroTPM 認證支援。

針對您用來加密秘密資料的 AWS KMS 金鑰，請新增金鑰政策，只有在 API 請求包含與您在可認證 AMI 建立程序期間產生之參考測量相符的證明文件時，才允許金鑰存取。針對標準開機使用 PCR4 和 PCR12 測量，或針對安全開機使用 PCR7 測量。這可確保只有來自使用可認證 AMI 啟動之執行個體的請求可以使用 AWS KMS 金鑰執行密碼編譯操作。

AWS KMS 提供 `kms:RecipientAttestation:NitroTPMPCR4`、 `kms:RecipientAttestation:NitroTPMPCR7`和 `kms:RecipientAttestation:NitroTPMPCR12`條件金鑰，可讓您為 NitroTPM KMS 金鑰政策建立以認證為基礎的條件。若要了解詳細資訊，請參閱 [NitroTPM 的條件金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-nitro-tpm.html)。

例如，以下 AWS KMS 金鑰政策僅在請求來自連接執行個體描述檔的`MyEC2InstanceRole`執行個體，以及請求包含具有特定 PCR 4 和 PCR 12 值的證明文件時，才允許金鑰存取。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Allow requests from instances with attested AMI only",
      "Effect": "Allow",
      "Principal": {
        "AWS": "{{arn:aws:iam::111122223333:role/MyEC2InstanceRole}}"
      },
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:GenerateRandom"
      ],
      "Resource": "*",
      "Condition": {
        "StringEqualsIgnoreCase": {
          "kms:RecipientAttestation:NitroTPMPCR4":"{{EXAMPLE6b9b3d89a53b13f5dfd14a1049ec0b80a9ae4b159adde479e9f7f512f33e835a0b9023ca51ada02160EXAMPLE}}",
          "kms:RecipientAttestation:NitroTPMPCR12":"{{000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000}}"
        }
      }
    }
  ]
}
```