更改密钥策略 - AWS Key Management Service

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

更改密钥策略

您可以使用AWS Management Console或PutKeyPolicy操作更改中某个 KMS 密钥的密钥策略。AWS 账户但这些技术不能用于更改其他 AWS 账户 中的 KMS 密钥的密钥策略。

当更改密钥策略时,请注意以下规则:

  • 您可以查看 AWS 托管式密钥客户托管密钥的密钥策略,但只能更改客户托管密钥的密钥策略 AWS 托管式密钥 的策略由在账户中创建 KMS 密钥的 AWS 服务创建和管理。您无法查看或更改 AWS 拥有的密钥 的密钥策略。

  • 您可以在密钥策略中添加或删除 IAM 用户、IAM 角色和 AWS 账户,并更改允许或拒绝这些主体执行的操作。有关在密钥策略中指定委托人和权限的方法的更多信息,请参阅密钥政策

  • 您无法向密钥策略添加 IAM 组,但可以添加多个 IAM 用户和 IAM 角色。有关更多信息,请参阅 允许多个 IAM 主体访问 KMS 密钥

  • 如果向密钥政策添加外部 AWS 账户,您还必须使用外部账户中的 IAM policy 向这些账户中的 IAM 用户、组或角色授予权限。有关更多信息,请参阅 允许其他账户中的用户使用 KMS 密钥

  • 所生成的密钥策略文档不能超过 32 KB(32,768 字节)。

如何更改密钥策略

您可以通过三种不同的方式更改密钥策略,如以下各部分所述。

使用 AWS Management Console默认视图

您可以使用控制台中名为默认视图的图形界面来更改密钥策略。

如果以下步骤与您在此控制台中看到的内容不一致,可能意味着,此密钥策略不是由此控制台创建的。也可能意味着,修改此密钥策略的方式不受控制台的默认视图的支持。在这种情况下,请按照使用 AWS Management Console策略视图使用 AWS KMS API中的步骤操作。

  1. 查看客户托管密钥的密钥策略,如 查看密钥策略(控制台) 中所述。(您无法更改 AWS 托管式密钥 的密钥策略。)

  2. 确定要更改的内容。

    • 要添加或删除密钥管理员以及允许或阻止密钥管理员删除 KMS 密钥,请使用此页面的 Key administrators(密钥管理员)部分中的控件。密钥管理员管理 KMS 密钥,包括启用和禁用它、设置密钥策略以及启用密钥轮换

    • 要添加或删除密钥用户以及允许或禁止外部 AWS 账户 使用 KMS 密钥,请使用此页面的 Key users(密钥用户)部分中的控件。密钥用户可以在加密操作(如加密、解密、重新加密和生成数据密钥)中使用 KMS 密钥。

使用 AWS Management Console策略视图

您可以使用控制台的策略视图更改密钥策略文档。

  1. 查看客户托管密钥的密钥策略,如 查看密钥策略(控制台) 中所述。(您无法更改 AWS 托管式密钥 的密钥策略。)

  2. 密钥策略部分中,选择切换到策略视图

  3. 编辑密钥策略文档,然后选择 Save changes (保存更改)

使用 AWS KMS API

您可以使用该PutKeyPolicy操作来更改您的 KMS 密钥的密钥策略AWS 账户。但不能对其他 AWS 账户 中的 KMS 密钥使用此 API。

  1. 使用GetKeyPolicy操作获取现有的密钥策略文档,然后将密钥策略文档保存到文件中。有关多种编程语言中的示例代码,请参阅 获取密钥策略

  2. 在您的首选文本编辑器中打开该密钥策略文档,编辑该密钥策略文档,然后保存文件。

  3. 使用PutKeyPolicy操作将更新的密钥策略文档应用于 KMS 密钥。有关多种编程语言中的示例代码,请参阅 设置密钥策略

有关将密钥策略从一个 KMS 密钥复制到另一个 KMS 密钥的GetKeyPolicy 示例,请参阅《AWS CLI命令参考》中的示例

允许多个 IAM 主体访问 KMS 密钥

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

  • 将 IAM 角色作为密钥策略中的主体。多个授权用户可以根据需要代入该角色。有关详细信息,请参阅《IAM 用户指南》中的 IAM 角色

    虽然您可以在密钥策略中列出多个 IAM 用户,但不建议采用这种做法,因为这将要求您在每次授权用户列表发生变化时更新密钥策略。此外,IAM 最佳实践也不鼓励使用具有长期凭证的 IAM 用户。有关更多信息,请参阅《IAM 用户指南》中的 IAM 安全最佳实践

  • 使用 IAM policy 向 IAM 组授予权限。要执行此操作,请确保密钥策略包含一个 启用 IAM policy 以允许访问 KMS 密钥 的语句,创建一个 IAM policy 以允许访问该 KMS 密钥,然后 将该策略附加到 IAM 组(其中包含授权 IAM 用户)。使用此方式,您不需要在授权用户列表发生更改时更改任何策略。相反,您只需在相应的 IAM 组中添加或删除这些用户。有关详细信息,请参阅《IAM 用户指南》中的 IAM 用户组

有关 AWS KMS 密钥政策和 IAM policy 如何协同工作的更多信息,请参阅 密钥访问故障排除