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

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

Amazon Nitro Enclaves 的 Amazon KMS 条件键

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

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

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

kms:RecipientAttestation: ImageSha 384

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

kms:RecipientAttestation:ImageSha384

字符串

单值

Decrypt

GenerateDataKey

GenerateDataKeyPair

GenerateRandom

密钥策略和 IAM policy

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

此值也包含在请求获得 Nitro 飞地CloudTrailAmazon KMS的事件中。

注意

此条件键在密钥策略语句和 IAM policy 语句中有效,即使没有出现在 IAM 控制台或 IAM 服务授权引用中。

例如,以下密钥策略声明允许该data-processing角色使用 KMS 密钥进行解密GenerateDataKeyGenerateDataKeyPair、和GenerateRandom操作。只有当请求中证明文档的图像摘要值 (PCR0) 与kms:RecipientAttestation:ImageSha384条件中的图像摘要值匹配时,条件键才允许进行操作。仅当请求中的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: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

GenerateDataKey

GenerateDataKeyPair

GenerateRandom

密钥策略和 IAM policy

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

此值也包含在代表对 Nitro 飞地Amazon KMS的请求CloudTrail的事件中。

注意

此条件键在密钥策略语句和 IAM policy 语句中有效,即使没有出现在 IAM 控制台或 IAM 服务授权引用中。

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

"kms:RecipientAttestation:PCRPCR_ID": "PCR_value"

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

kms:RecipientAttestation:PCR1: "0x1abcdef2abcdef3abcdef4abcdef5abcdef6abcdef7abcdef8abcdef9abcdef8abcdef7abcdef6abcdef5abcdef4abcdef3abcdef2abcdef1abcdef0abcde"

以下示例密钥策略声明允许该data-processing角色使用 KMS 密钥进行解密操作。

此语句中的 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" } } }