

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

# 更改密钥政策
<a name="key-policy-modifying"></a>

您可以使用 AWS 管理控制台 或[PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)操作更改中某个 KMS 密钥的密钥策略。 AWS 账户 但这些技术不能用于更改其他 AWS 账户中的 KMS 密钥的密钥策略。

当更改密钥策略时，请注意以下规则：
+ 您可以查看 [AWS 托管式密钥](concepts.md#aws-managed-key) 或[客户托管密钥](concepts.md#customer-mgn-key)的密钥策略，但只能更改客户托管密钥的密钥策略 的策略由 AWS 托管式密钥 在您的账户中创建 KMS 密钥的 AWS 服务创建和管理。您无法查看或更改 [AWS 拥有的密钥](concepts.md#aws-owned-key) 的密钥策略。
+ 您可以在密钥策略 AWS 账户 中添加或删除 IAM 用户、IAM 角色以及更改允许或拒绝这些委托人的操作。有关在密钥策略中指定委托人和权限的方法的更多信息，请参阅[密钥政策](key-policies.md)。
+ 您无法向密钥策略添加 IAM 组，但可以添加多个 IAM 用户和 IAM 角色。有关更多信息，请参阅 [允许多个 IAM 主体访问 KMS 密钥](iam-policies.md#key-policy-modifying-multiple-iam-users)。
+ 如果您在密钥策略中 AWS 账户 添加外部策略，则还必须在外部账户中使用 IAM 策略向这些账户中的 IAM 用户、群组或角色授予权限。有关更多信息，请参阅 [允许其他账户中的用户使用 KMS 密钥](key-policy-modifying-external-accounts.md)。
+ 所生成的密钥策略文档不能超过 32 KB（32,768 字节）。

## 如何更改密钥策略
<a name="key-policy-modifying-how-to"></a>

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

**Topics**
+ [使用 AWS 管理控制台 默认视图](#key-policy-modifying-how-to-console-default-view)
+ [使用 AWS 管理控制台 策略视图](#key-policy-modifying-how-to-console-policy-view)
+ [使用 AWS KMS API](#key-policy-modifying-how-to-api)

### 使用 AWS 管理控制台 默认视图
<a name="key-policy-modifying-how-to-console-default-view"></a>

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

如果以下步骤与您在此控制台中看到的内容不一致，可能意味着，此密钥策略不是由此控制台创建的。也可能意味着，修改此密钥策略的方式不受控制台的默认视图的支持。在这种情况下，请按照[使用 AWS 管理控制台 策略视图](#key-policy-modifying-how-to-console-policy-view)或[使用 AWS KMS API](#key-policy-modifying-how-to-api)中的步骤操作。

1. 查看客户托管密钥的密钥策略，如 [使用控制 AWS KMS 台](key-policy-viewing.md#key-policy-viewing-console) 中所述。（您无法更改的密钥策略 AWS 托管式密钥。）

1. 确定要更改的内容。
   + 要添加或删除[密钥管理员](key-policy-default.md#key-policy-default-allow-administrators)以及允许或阻止密钥管理员[删除 KMS 密钥](deleting-keys.md)，请使用此页面的 **Key administrators**（密钥管理员）部分中的控件。密钥管理员管理 KMS 密钥，包括启用和禁用它、设置密钥策略以及[启用密钥轮换](rotate-keys.md)。
   + 要添加或删除[密钥用户](key-policy-default.md#key-policy-default-allow-users)，以及允许或禁止外部 AWS 账户 用户使用 KMS 密钥，请使用页面**密钥用户**部分中的控件。密钥用户可以在[加密操作](kms-cryptography.md#cryptographic-operations)（如加密、解密、重新加密和生成数据密钥）中使用 KMS 密钥。

### 使用 AWS 管理控制台 策略视图
<a name="key-policy-modifying-how-to-console-policy-view"></a>

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

1. 查看客户托管密钥的密钥策略，如 [使用控制 AWS KMS 台](key-policy-viewing.md#key-policy-viewing-console) 中所述。（您无法更改的密钥策略 AWS 托管式密钥。）

1. 在**密钥策略**部分中，选择**切换到策略视图**。

1. 选择**编辑**。

1. 确定要更改的内容。
   + 要添加新语句，请选择**添加新语句**。然后，您可以从语句构建器面板列出的选项中选择新密钥策略语句的操作、主体和条件，也可手动输入策略语句元素。
   + 要移除密钥策略中的某个语句，请选择该语句，然后选择**移除**。检查所选的策略语句并确认您要将其移除。如果您决定不移除该语句，请选择**取消**。
   + 要编辑现有的密钥策略语句，请选择该语句。然后，您可以使用语句生成器面板来选择要修改的特定元素，也可手动编辑该语句。

1. 选择**保存更改**。

### 使用 AWS KMS API
<a name="key-policy-modifying-how-to-api"></a>

您可以使用该[PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)操作来更改您的 KMS 密钥的密钥策略 AWS 账户。但不能对其他 AWS 账户中的 KMS 密钥使用此 API。

1. 使用[GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html)操作获取现有的密钥策略文档，然后将密钥策略文档保存到文件中。有关多种编程语言中的示例代码，请参阅 [`GetKeyPolicy`与 AWS SDK 或 CLI 配合使用](example_kms_GetKeyPolicy_section.md)。

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

1. 使用[PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)操作将更新的密钥策略文档应用于 KMS 密钥。有关多种编程语言中的示例代码，请参阅 [`PutKeyPolicy`与 AWS SDK 或 CLI 配合使用](example_kms_PutKeyPolicy_section.md)。

有关将密钥策略从一个 KMS 密钥复制到另一个 KMS 密钥的[GetKeyPolicy 示例，请参阅 AWS CLI 命令参考中的示例](https://docs.aws.amazon.com/cli/latest/reference/kms/get-key-policy.html#examples)。