将IAM策略与配合使用 Amazon KMS - Amazon Key Management Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将IAM策略与配合使用 Amazon KMS

您可以使用IAM策略以及密钥策略授权VPC终端节点策略来控制对您的 Amazon KMS keys 输入的访问权限 Amazon KMS。

注意

要使用IAM策略来控制对KMS密钥的访问,密钥的密KMS钥策略必须授予账户使用IAM策略的权限。具体而言,密钥策略必须包含启用 IAM 策略的策略语句

本节介绍如何使用IAM策略来控制对 Amazon KMS 操作的访问权限。有关的更多一般信息IAM,请参阅《IAM用户指南》

所有KMS密钥都必须有密钥策略。 IAM策略是可选的。要使用IAM策略来控制对KMS密钥的访问,密钥的密KMS钥策略必须授予账户使用IAM策略的权限。具体而言,密钥策略必须包含启用 IAM 策略的策略语句

IAM策略可以控制对任何 Amazon KMS 操作的访问权限。与密钥策略不同,IAM策略可以控制对多个KMS密钥的访问权限,并为多个相关 Amazon 服务的操作提供权限。但是IAM策略对于控制对操作的访问特别有用,例如 CreateKey,由于它们不涉及任何特定的密钥,因此无法由KMS密钥策略控制。

如果您 Amazon KMS 通过 Amazon Virtual Private Cloud (AmazonVPC) VPC 终端节点进行访问,则还可以在使用终端节点时使用终端节点策略来限制对 Amazon KMS 资源的访问。例如,在使用VPC终端节点时,您可能只允许您的委托人 Amazon Web Services 账户 访问您的客户托管密钥。有关详细信息,请参阅VPC终端节点策略

有关撰写和格式化JSON政策文档的帮助,请参阅《IAM用户指南》中的《IAMJSON政策参考

您可以通过以下方式使用 IAM 策略:

  • 将@@ 权限策略附加到角色以获得联合身份验证或跨账户权限-您可以将IAM策略附加到IAM角色以启用联合身份验证、允许跨账户权限或向在实例上EC2运行的应用程序授予权限。有关IAM角色的各种用例的更多信息,请参阅《IAM用户指南》中的IAM角色

  • 将权限策略附加到用户或组 – 您可以附加允许某个用户或用户组调用 Amazon KMS 操作的策略。但是,IAM最佳实践建议您尽可能使用带有临时证书的身份,例如IAM角色。

以下示例显示了具有 Amazon KMS 权限的IAM策略。此策略允许其所关联的IAM身份列出所有KMS密钥和别名。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:ListKeys", "kms:ListAliases" ], "Resource": "*" } }

与所有 IAM 策略一样,此策略没有 Principal 元素。当您将IAM策略附加到IAM身份时,该身份将获得策略中指定的权限。

有关显示所有 Amazon KMS API操作及其适用的资源的表格,请参阅权限参考

允许多个IAM委托人访问一个密钥 KMS

IAM 组不是密钥策略中的有效委托人。要允许多个用户和角色访问KMS密钥,请执行以下任一操作:

有关 Amazon KMS 关键策略和IAM策略如何协同工作的更多信息,请参阅排除 Amazon KMS 权限故障