Amazon KMSAmazon Nitro Enclaves 的条件键 - Amazon Key Management Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon KMSAmazon Nitro Enclaves 的条件键

Amazon Nitro Enclaves 是一项 Amazon EC2 功能,可让您创建称为 enclav e 的隔离计算环境,以保护和处理高度敏感的数据。 Amazon KMS 提供条件键来支持 Amazon Nitro Enclaves。这些条件键仅对向请求 Nitro En Amazon KMS clave 有效。

当您使用来自安全区的签名认证文档调用 Decrypt DeriveSharedSecretGenerateDataKeyGenerateDataKeyPair、、、或 GenerateRandomAPI 操作时,这些操作会使用认证文档中的公钥对响应中的明文 APIs 进行加密,并返回密文而不是纯文本。此加密文字只能使用 Enclave 中的私有密钥进行解密。有关更多信息,请参阅 Amazon Nitro Enclaves 的加密证明

通过以下条件键,您可以根据签名证明文档的内容限制这些操作的权限。在允许操作之前, Amazon KMS 将来自 enclave 的证明文档与这些条件键中的值进行比较。 Amazon KMS

kms:RecipientAttestation: ImageSha 384

Amazon KMS 条件密钥 条件类型 值类型 API 操作 策略类型

kms:RecipientAttestation:ImageSha384

字符串

单值

Decrypt

DeriveSharedSecret

GenerateDataKey

GenerateDataKeyPair

GenerateRandom

密钥策略和 IAM policy

当请求中的已签名证明文档中的映像摘要与条件键中的值相匹配时,kms:RecipientAttestation:ImageSha384 条件键使用 KMS 密钥控制对 DecryptDeriveSharedSecretGenerateDataKeyGenerateDataKeyPairGenerateRandom 的访问。ImageSha384 值对应于证明文档中的 PCR0。仅当请求中的Recipient参数为 Amazon Nitro Enclave 指定了已签名的证明文档时,该条件键才有效。

此值还包含在向请求 Nitro Encl Amazon KMS ave CloudTrail的事件中。

例如,以下密钥策略声明允许该data-processing角色使用 KMS 密钥进行解密、、DeriveSharedSecretGenerateDataKeyGenerateDataKeyPair、和GenerateRandom操作。kms:RecipientAttestation:ImageSha384 条件键仅允许在请求中的证明文档的映像摘要值(PCR0)与条件中的映像摘要值匹配时执行操作。仅当请求中的Recipient参数为 Amazon Nitro Enclave 指定了已签名的证明文档时,该条件键才有效。

如果请求不包含来自 Amazon Nitro Enclave 的有效证明文档,则权限将被拒绝拒绝拒绝拒绝绝拒绝拒绝拒绝拒绝拒绝拒绝拒绝拒绝拒绝拒绝拒绝拒绝拒绝拒绝

{ "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:: PCR RecipientAttestation <PCR_ID>

Amazon KMS 条件密钥 条件类型 值类型 API 操作 策略类型

kms:RecipientAttestation:PCR<PCR_ID>

字符串

单值

Decrypt

DeriveSharedSecret

GenerateDataKey

GenerateDataKeyPair

GenerateRandom

密钥策略和 IAM policy

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

该值还包含在向请求 Nitro Enclav Amazon KMS e CloudTrail的事件中。

要指定 PCR 值,请使用以下格式。将 PCR ID 连接到条件键名称。您可以指定用于识别六个安全区测量值之一的 PCR ID,也可以指定为特定用例定义的自定义 PCR ID。PCR 值必须是最多 96 个字节的小写十六进制字符串。

"kms:RecipientAttestation:PCRPCR_ID": "PCR_value"

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

kms:RecipientAttestation:PCR1: "0x1abcdef2abcdef3abcdef4abcdef5abcdef6abcdef7abcdef8abcdef9abcdef8abcdef7abcdef6abcdef5abcdef4abcdef3abcdef2abcdef1abcdef0abcde"

以下示例密钥政策语句允许 data-processing 角色将 KMS 密钥用于 Decrypt 操作。

仅当请求中的已签名证明文档中的值与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": "0x1de4f2dcf774f6e3b679f62e5f120065b2e408dcea327bd1c9dddaea6664e7af7935581474844767453082c6f1586116376cede396a30a39a611b9aad7966c87" } } }