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