NitroTPM 的条件键
以下条件键是特定于 NitroTPM 认证:
kms:RecipientAttestation:NitroTPMPCR<PCR_ID>
| AWS KMS 条件键 | 条件类型 | 值类型 | API 操作 | 策略类型 |
|---|---|---|---|---|
|
|
字符串 |
单值 |
|
密钥策略和 IAM policy |
kms:RecipientAttestation:NitroTPMPCR<PCR_ID> 条件键仅在请求中的已签名证明文档的平台配置注册(PCR)与条件键中的 PCR 匹配时,通过 KMS 密钥控制对 Decrypt、DeriveSharedSecret、GenerateDataKey、GenerateDataKeyPair 和 GenerateRandom 的访问。仅当请求中的 Recipient 参数指定来自 NitroTPM 的已签名认证文档时,该条件键才有效。
该值还会包含在代表 NitroTPM 的 AWS KMS 请求的 CloudTrail 事件中。
要指定 PCR 值,请使用以下格式。将 PCR ID 连接到条件键名称。PCR 值必须是最多 96 个字节的小写十六进制字符串。
"kms:RecipientAttestation:NitroTPMPCRPCR_ID": "PCR_value"
例如,以下条件键将指定 PCR4 的特定值:
kms:RecipientAttestation:NitroTPMPCR4: "abc1abcdef2abcdef3abcdef4abcdef5abcdef6abcdef7abcdef8abcdef9abcdef8abcdef7abcdef6abcdef5abcdef4abcdef3abcdef2abcdef1abcdef0abcde"
以下示例密钥政策语句允许 data-processing 角色将 KMS 密钥用于 Decrypt 操作。
此语句中的 kms:RecipientAttestation:NitroTPMPCR 条件键仅在请求中的签名证明文档的 PCR4 值与条件中的 kms:RecipientAttestation:NitroTPMPCR4 值匹配时允许执行操作。使用 StringEqualsIgnoreCase 策略运算符来要求对 PCR 值进行不区分大小写的比较。
如果请求不包含证明文档,则权限将被拒绝,因为不满足此条件。
{ "Sid" : "Enable NitroTPM data processing", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:role/data-processing" }, "Action": "kms:Decrypt", "Resource" : "*", "Condition": { "StringEqualsIgnoreCase": { "kms:RecipientAttestation:NitroTPMPCR4": "abc1de4f2dcf774f6e3b679f62e5f120065b2e408dcea327bd1c9dddaea6664e7af7935581474844767453082c6f1586116376cede396a30a39a611b9aad7966c87" } } }