

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

# 控制密钥删除所需的权限
<a name="deleting-keys-adding-permission"></a>

如果您使用 IAM 策略来 Amazon KMS 授予权限，则已允许拥有 Amazon 管理员访问权限 (`"Action": "*"`) 或 Amazon KMS 完全访问权限 (`"Action": "kms:*"`) 的 IAM 身份安排和取消密钥删除 KMS 密钥。要允许密钥管理员安排和取消密钥策略中的密钥删除，请使用 Amazon KMS 控制台或 Amazon KMS API。

通常，只有密钥管理员才有权安排或取消密钥删除。但是，您可以通过向密钥策略或 IAM policy 添加 `kms:ScheduleKeyDeletion` 和 `kms:CancelKeyDeletion` 权限，将这些权限授予其他 IAM 身份。您还可以使用[`kms:ScheduleKeyDeletionPendingWindowInDays`](conditions-kms.md#conditions-kms-schedule-key-deletion-pending-window-in-days)条件键进一步限制委托人可以在请求`PendingWindowInDays`参数中指定的值。[ScheduleKeyDeletion](https://docs.amazonaws.cn/kms/latest/APIReference/API_ScheduleKeyDeletion.html)

## 允许密钥管理员安排和取消密钥删除
<a name="allow-key-deletion"></a>

### 使用控制 Amazon KMS 台
<a name="deleting-keys-adding-permission-console"></a>

授予密钥管理员计划和取消密钥删除的权限。

1. 登录 Amazon Web Services 管理控制台 并在 [https://console.aws.amazon.com/km](https://console.amazonaws.cn/kms) s 处打开 Amazon Key Management Service (Amazon KMS) 控制台。

1. 要更改 Amazon Web Services 区域，请使用页面右上角的区域选择器。

1. 在导航窗格中，选择**客户托管密钥**。

1. 选择要更改其权限的 KMS 密钥的别名或密钥 ID。

1. 选择 **key policy**（密钥策略）选项卡。

1. 下一步操作具体取决于密钥策略的*默认视图*和*策略视图*。只有在使用默认控制台密钥策略时，默认视图才可用。否则，仅策略视图可用。

   当默认视图可用时，**Key policy**（密钥策略）选项卡上会出现 **Switch to policy view**（切换到策略视图）或 **Switch to default view**（切换到默认视图）按钮。
   + 在默认视图中：

     1. 在 **Key deletion**（密钥删除）下，选择 **Allow key administrators to delete this key**（允许密钥管理员删除此密钥）。
   + 在策略视图中：

     1. 选择**编辑**。

     1. 在密钥管理员的策略语句中，向 `Action` 元素添加 `kms:ScheduleKeyDeletion` 和 `kms:CancelKeyDeletion` 权限。

        ```
        {
          "Sid": "Allow access for Key Administrators",
          "Effect": "Allow",
          "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSKeyAdmin"},
          "Action": [
            "kms:Create*",
            "kms:Describe*",
            "kms:Enable*",
            "kms:List*",
            "kms:Put*",
            "kms:Update*",
            "kms:Revoke*",
            "kms:Disable*",
            "kms:Get*",
            "kms:Delete*",
            "kms:ScheduleKeyDeletion",
            "kms:CancelKeyDeletion"
          ],
          "Resource": "*"
        }
        ```

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

### 使用 Amazon KMS API
<a name="deleting-keys-adding-permission-cli"></a>

您可以使用 Amazon Command Line Interface 来添加计划和取消密钥删除的权限。

**添加计划和取消密钥删除所需的权限**

1. 使用 [https://docs.amazonaws.cn/cli/latest/reference/kms/get-key-policy.html](https://docs.amazonaws.cn/cli/latest/reference/kms/get-key-policy.html) 命令检索现有的密钥策略，然后将策略文档保存到文件中。

1. 在您的首选文本编辑器中打开策略文档。在密钥管理员的策略语句中，添加 `kms:ScheduleKeyDeletion` 和 `kms:CancelKeyDeletion` 权限。以下示例显示了一个具有这两项权限的策略语句：

   ```
   {
     "Sid": "Allow access for Key Administrators",
     "Effect": "Allow",
     "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSKeyAdmin"},
     "Action": [
       "kms:Create*",
       "kms:Describe*",
       "kms:Enable*",
       "kms:List*",
       "kms:Put*",
       "kms:Update*",
       "kms:Revoke*",
       "kms:Disable*",
       "kms:Get*",
       "kms:Delete*",
       "kms:ScheduleKeyDeletion",
       "kms:CancelKeyDeletion"
     ],
     "Resource": "*"
   }
   ```

1. 使用 [https://docs.amazonaws.cn/cli/latest/reference/kms/put-key-policy.html](https://docs.amazonaws.cn/cli/latest/reference/kms/put-key-policy.html) 命令将密钥策略应用于 KMS 密钥。