本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon KMSAmazon Nitro Enclaves 的条件密钥
Amazon Nitro Enclaves 是 Amazon EC2 的一项功能,它允许您创建称为飞地的隔离计算环境,以保护和处理高度敏感的数据。 Amazon KMS 提供条件键来支持 Amazon Nitro Enclaves。这些条件密钥仅对请求获得 Nitro Enclave 有效。 Amazon KMS
当您使用来自安全区的签名认证文档调用 Decrypt GenerateDataKeyGenerateDataKeyPair、、或 GenerateRandomAPI 操作时,这些 API 会使用认证文档中的公钥对响应中的明文进行加密,并返回密文而不是纯文本。此加密文字只能使用 Enclave 中的私有密钥进行解密。有关更多信息,请参阅Amazon Nitro Enclaves 如何使用 Amazon KMS。
通过以下条件键,您可以根据签名证明文档的内容限制这些操作的权限。在允许操作之前,请将安全区中的证明文档与这些条件键中的值进行 Amazon KMS 比较。 Amazon KMS
kms:RecipientAttestation: ImageSha 384
Amazon KMS 条件密钥 | 条件类型 | 值类型 | API 操作 | 策略类型 |
---|---|---|---|---|
|
字符串 |
单值 |
|
密钥策略和 IAM policy |
当请求中的已签名证明文档中的映像摘要与条件键中的值相匹配时,kms:RecipientAttestation:ImageSha384
条件键使用 KMS 密钥控制对 Decrypt
、GenerateDataKey
、GenerateDataKeyPair
和 GenerateRandom
的访问。ImageSha384
值对应于证明文档中的 PCR0。仅当请求中的Recipient
参数为 Amazon Nitro 飞地指定了已签名的认证文档时,此条件密钥才有效。
此值也包含在请求获得 Nitro 飞地CloudTrail Amazon KMS 的事件中。
注意
此条件键在密钥策略语句和 IAM policy 语句中有效,即使没有出现在 IAM 控制台或 IAM 服务授权引用中。
例如,以下密钥策略声明允许该data-processing
角色使用 KMS 密钥进行解密、GenerateDataKeyGenerateDataKeyPair、和GenerateRandom操作。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:GenerateDataKey", "kms:GenerateDataKeyPair", "kms:GenerateRandom" ], "Resource" : "*", "Condition": { "StringEqualsIgnoreCase": { "kms:RecipientAttestation:ImageSha384": "9fedcba8abcdef7abcdef6abcdef5abcdef4abcdef3abcdef2abcdef1abcdef1abcdef0abcdef1abcdef2abcdef3abcdef4abcdef5abcdef6abcdef7abcdef99" } } }
kms:: PCR RecipientAttestation <PCR_ID>
Amazon KMS 条件密钥 | 条件类型 | 值类型 | API 操作 | 策略类型 |
---|---|---|---|---|
|
字符串 |
单值 |
|
密钥策略和 IAM policy |
kms:RecipientAttestation:PCR<PCR_ID>
条件键仅在请求中的已签名证明文档的平台配置注册(PCR)与条件键中的 PCR 匹配时,通过 KMS 密钥控制对 Decrypt
、GenerateDataKey
、GenerateDataKeyPair
和 GenerateRandom
的访问。仅当请求中的Recipient
参数指定来自 Amazon Nitro 飞地的已签名认证文档时,此条件密钥才有效。
此值也包含在代表对 Nitro 飞地 Amazon KMS 的请求CloudTrail的事件中。
注意
此条件键在密钥策略语句和 IAM policy 语句中有效,即使没有出现在 IAM 控制台或 IAM 服务授权引用中。
要指定 PCR 值,请使用以下格式。将 PCR ID 连接到条件键名称。PCR 值必须是最多 96 个字节的小写十六进制字符串。
"kms:RecipientAttestation:PCR
PCR_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" } } }