AWS Key Management Service
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

检查授权

授权是一种高级机制,用于指定您或与 AWS KMS 集成的 AWS服务可用于指定使用 CMK 的方式和时间的权限。授权将附加到 CMK,每个授权都包含一位委托人,此委托人可获得使用 CMK 和所允许的操作列表的权限。授权是密钥策略的替代方案,对特定的使用案例很有用。有关更多信息,请参阅使用授权

要检索附加到 CMK 的授权的列表,请使用 AWS KMS ListGrants API(或 list-grants AWS CLI 命令)。您可以检查 CMK 的授权来确定当前有权通过这些授权使用 CMK 的对象。例如,下面是某个授权的 JSON 表示形式,此授权是通过 AWS CLI 中的 list-grants 命令获取的。

{"Grants": [{ "Operations": ["Decrypt"], "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Name": "0d8aa621-43ef-4657-b29c-3752c41dc132", "RetiringPrincipal": "arn:aws:iam::123456789012:root", "GranteePrincipal": "arn:aws:sts::111122223333:assumed-role/aws:ec2-infrastructure/i-5d476fab", "GrantId": "dc716f53c93acacf291b1540de3e5a232b76256c83b2ecb22cdefa26576a2d3e", "IssuingAccount": "arn:aws:iam::111122223333:root", "CreationDate": 1.444151834E9, "Constraints": {"EncryptionContextSubset": {"aws:ebs:id": "vol-5cccfb4e"}} }]}

要了解有权使用 CMK 的对象,可查找 "GranteePrincipal" 元素。在上述示例中,被授权委托人是与 EC2 实例 i-5d476fab 关联的假设用户角色。EC2 基础设施使用此角色将加密的 EBS 卷 vol-5cccfb4e 附加到此实例。在此情况下,EC2 基础设施角色有权使用 CMK,因为您之前创建了受此 CMK 保护的加密的 EBS 卷。之后,您将此卷附加到了 EC2 实例。

下面是另一个 JSON 表示形式的授权的示例,此授权是通过 AWS CLI 中的 list-grants 命令获取的。在以下示例中,被授权委托人是另一个 AWS 账户。

{"Grants": [{ "Operations": ["Encrypt"], "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Name": "", "GranteePrincipal": "arn:aws:iam::444455556666:root", "GrantId": "f271e8328717f8bde5d03f4981f06a6b3fc18bcae2da12ac38bd9186e7925d11", "IssuingAccount": "arn:aws:iam::111122223333:root", "CreationDate": 1.444151269E9 }]}