

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# NitroTPM 的条件键
<a name="conditions-nitro-tpm"></a>

以下条件键是特定于 NitroTPM 认证：

## kms:: RecipientAttestation nitrotpmPCR <PCR\$1ID>
<a name="conditions-kms-recipient-nitro-tpm-pcrs"></a>


| AWS KMS 条件密钥 | 条件类型 | 值类型 | API 操作 | 策略类型 | 
| --- | --- | --- | --- | --- | 
|  `kms:RecipientAttestation:NitroTPMPCR<PCR_ID>`  |  字符串  | 单值 |  `Decrypt` `DeriveSharedSecret` `GenerateDataKey` `GenerateDataKeyPair` `GenerateRandom`  |  密钥策略和 IAM policy  | 

只有当平台配置从请求中的已签名证明文档中注册的 (PCRs) `GenerateRandom` 与`kms:RecipientAttestation:NitroTPMPCR<PCR_ID>`条件密钥中的匹配时，条件密钥才使用KMS密钥控制对、、、和 PCRs 的访问。`Decrypt` `DeriveSharedSecret` `GenerateDataKey` `GenerateDataKeyPair`仅当请求中的 `Recipient` 参数指定来自 NitroTPM 的已签名认证文档时，该条件键才有效。

此值也包含在代表对 NitrotPM AWS KMS 的请求[CloudTrail的事件](ct-nitro-tpm.md)中。

要指定 PCR 值，请使用以下格式。将 PCR ID 连接到条件键名称。PCR 值必须是最多 96 个字节的小写十六进制字符串。

```
"kms:RecipientAttestation:NitroTPMPCRPCR_ID": "PCR_value"
```

例如，以下条件键为指定了特定的值 PCR4：

```
kms:RecipientAttestation:NitroTPMPCR4: "abc1abcdef2abcdef3abcdef4abcdef5abcdef6abcdef7abcdef8abcdef9abcdef8abcdef7abcdef6abcdef5abcdef4abcdef3abcdef2abcdef1abcdef0abcde"
```

以下示例密钥政策语句允许 `data-processing` 角色将 KMS 密钥用于 [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) 操作。

只有当请求中已签名的证明文档中的值与`kms:RecipientAttestation:NitroTPMPCR`条件中的 PCR4 `kms:RecipientAttestation:NitroTPMPCR4`值相匹配时，此语句中的条件键才允许该操作。使用 `StringEqualsIgnoreCase` 策略运算符来要求对 PCR 值进行不区分大小写的比较。

如果请求不包含证明文档，则权限将被拒绝，因为不满足此条件。

```
{
  "Sid" : "Enable NitroTPM data processing",
  "Effect" : "Allow",
  "Principal" : {
    "AWS" : "arn:aws:iam::111122223333:role/data-processing"
  },
  "Action": "kms:Decrypt",
  "Resource" : "*",
  "Condition": {
    "StringEqualsIgnoreCase": {
      "kms:RecipientAttestation:NitroTPMPCR4": "abc1de4f2dcf774f6e3b679f62e5f120065b2e408dcea327bd1c9dddaea6664e7af7935581474844767453082c6f1586116376cede396a30a39a611b9aad7966c87"
    }
  }
}
```