

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

# Nitro Enclaves 的条件键
<a name="conditions-nitro-enclave"></a>

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

## kms: RecipientAttestation:ImageSha384
<a name="conditions-kms-recipient-image-sha"></a>


| Amazon KMS 条件密钥 | 条件类型 | 值类型 | API 操作 | 策略类型 | 
| --- | --- | --- | --- | --- | 
| `kms:RecipientAttestation:ImageSha384` | 字符串 | Single-valued | `Decrypt`<br />`DeriveSharedSecret`<br />`GenerateDataKey`<br />`GenerateDataKeyPair`<br />`GenerateRandom` | 密钥策略和 IAM policy | 

当请求中的已签名证明文档中的映像摘要与条件键中的值相匹配时，`kms:RecipientAttestation:ImageSha384` 条件键使用 KMS 密钥控制对 `Decrypt`、`DeriveSharedSecret`、`GenerateDataKey`、`GenerateDataKeyPair` 和 `GenerateRandom` 的访问。`ImageSha384` 值对应于证明文档中的 PCR0。仅当请求中的`Recipient`参数为 Amazon Nitro 飞地指定了已签名的认证文档时，此条件密钥才有效。

此值也包含在请求获得 Nitro 飞地[CloudTrail Amazon KMS 的事件](ct-nitro-enclave.md)中。

例如，以下密钥策略声明允许该`data-processing`角色使用 KMS 密钥进行[解密](https://docs.amazonaws.cn/kms/latest/APIReference/API_Decrypt.html)、、[DeriveSharedSecret[GenerateDataKey[GenerateDataKeyPair](https://docs.amazonaws.cn/kms/latest/APIReference/API_GenerateDataKeyPair.html)](https://docs.amazonaws.cn/kms/latest/APIReference/API_GenerateDataKey.html)](https://docs.amazonaws.cn/kms/latest/APIReference/API_DeriveSharedSecret)、和[GenerateRandom](https://docs.amazonaws.cn/kms/latest/APIReference/API_GenerateRandom.html)操作。`kms:RecipientAttestation:ImageSha384` 条件键仅允许在请求中的证明文档的映像摘要值（PCR0）与条件中的映像摘要值匹配时执行操作。仅当请求中的`Recipient`参数为 Amazon Nitro 飞地指定了已签名的认证文档时，此条件密钥才有效。

如果请求中不包括来自 Amazon Nitro 飞地的有效证明文件，则会因为不满足此条件而拒绝许可。

```
{
  "Sid" : "Enable enclave data processing",
  "Effect" : "Allow",
  "Principal" : {
    "AWS" : "arn:aws:iam::111122223333:role/data-processing"
  },
  "Action": [
    "kms:Decrypt",
    "kms:DeriveSharedSecret",
    "kms:GenerateDataKey",
    "kms:GenerateDataKeyPair",
    "kms:GenerateRandom"
  ],
  "Resource" : "*",
  "Condition": {
    "StringEqualsIgnoreCase": {
      "kms:RecipientAttestation:ImageSha384": "9fedcba8abcdef7abcdef6abcdef5abcdef4abcdef3abcdef2abcdef1abcdef1abcdef0abcdef1abcdef2abcdef3abcdef4abcdef5abcdef6abcdef7abcdef99"
    }
  }
}
```

## kms: RecipientAttestation:PCR < PCR\_ID >
<a name="conditions-kms-recipient-pcrs"></a>


| Amazon KMS 条件密钥 | 条件类型 | 值类型 | API 操作 | 策略类型 | 
| --- | --- | --- | --- | --- | 
| `kms:RecipientAttestation:PCR<PCR_ID>` | 字符串 | Single-valued | `Decrypt`<br />`DeriveSharedSecret`<br />`GenerateDataKey`<br />`GenerateDataKeyPair`<br />`GenerateRandom` | 密钥策略和 IAM policy | 

`kms:RecipientAttestation:PCR<PCR_ID>` 条件键仅在请求中的已签名证明文档的平台配置注册（PCR）与条件键中的 PCR 匹配时，通过 KMS 密钥控制对 `Decrypt`、`DeriveSharedSecret`、`GenerateDataKey`、`GenerateDataKeyPair` 和 `GenerateRandom` 的访问。仅当请求中的`Recipient`参数指定来自 Amazon Nitro 飞地的已签名认证文档时，此条件密钥才有效。

此值也包含在代表对 Nitro 飞地 Amazon KMS 的请求[CloudTrail的事件](ct-nitro-enclave.md)中。

要指定 PCR 值，请使用以下格式。将 PCR ID 连接到条件键名称。您可以指定标识[六个飞地指标](https://docs.amazonaws.cn/enclaves/latest/user/set-up-attestation.html#where)之一的 PCR ID，也可以指定您为特定使用案例定义的自定义 PCR ID。PCR 值必须是最多 96 个字节的小写十六进制字符串。

```
"kms:RecipientAttestation:PCR{{PCR_ID}}": "{{PCR_value}}"
```

例如，以下条件键指定 PCR1 的特定值，该值对应于用于 Enclave 和引导启动过程的内核的哈希值。

```
kms:RecipientAttestation:PCR1: "abc1abcdef2abcdef3abcdef4abcdef5abcdef6abcdef7abcdef8abcdef9abcdef8abcdef7abcdef6abcdef5abcdef4abcdef3abcdef2abcdef1abcdef0abcde"
```

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

此语句中的 `kms:RecipientAttestation:PCR` 条件键仅在请求中的签名证明文档的 PCR1 值与条件中的 `kms:RecipientAttestation:PCR1` 值匹配时允许执行操作。使用 `StringEqualsIgnoreCase` 策略运算符来要求对 PCR 值进行不区分大小写的比较。

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

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