

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

# 启用自动密钥轮换
<a name="rotating-keys-enable"></a>

默认情况下，当您为 KMS *密钥启用自动密钥轮换*时，每年会为 KMS 密钥 AWS KMS 生成新的加密材料。您还可以指定自定义，[rotation-period](rotate-keys.md#rotation-period)以定义启用自动密钥轮换以轮换密钥材料后的天数，以及此后每次自动轮换之间的天数。 AWS KMS 

自动密钥轮换具有以下优点：
+ KMS 密钥的属性，包括其[密钥 ID](concepts.md#key-id-key-id)、[密钥 ARN](concepts.md#key-id-key-ARN)、区域、策略和权限，在密钥轮换时不会发生改变。
+ 您无需更改引用该 KMS 密钥的密钥 ID 或密钥 ARN 的应用程序或别名。
+ 轮换密钥材料不会影响 AWS 服务中任何 KMS 密钥的使用。
+ 启用密钥轮换后，将在 AWS KMS 轮换周期定义的下一个轮换日期自动轮换 KMS 密钥。您无需记住或计划更新。

您可以在 AWS KMS 控制台中或使用[EnableKeyRotation](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKeyRotation.html)操作启用自动密钥轮换。要启用自动密钥轮换，您需要 `kms:EnableKeyRotation` 权限。有关 AWS KMS 权限的更多信息，请参阅[权限参考](kms-api-permissions-reference.md)。

## 使用控制 AWS KMS 台
<a name="rotate-keys-console"></a>

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

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

1. 在导航窗格中，选择**客户托管密钥**。（您无法启用或禁用 AWS 托管式密钥的轮换。它们每年自动轮换一次。）

1. 选择 KMS 密钥的别名和密钥 ID。

1. 选择 **Key rotation (密钥轮换)** 选项卡。

   **密钥轮换**选项卡仅出现在对称加密 KMS 密钥的详细信息页面上，其中包含 AWS KMS 生成的密钥材料（**来源**是 **AWS\$1KMS**），包括[多区域](rotate-keys.md#multi-region-rotate)对称加密 KMS 密钥。

   您不能自动轮换非对称 KMS 密钥、HMAC KMS 密钥、具有[导入的密钥材料](importing-keys.md)的 KMS 密钥或[自定义密钥存储](key-store-overview.md#custom-key-store-overview)中的 KMS 密钥。但是，您可以[手动轮换它们](rotate-keys-manually.md)。

1. 在**自动密钥轮换**部分，选择**编辑**。

1. 对于**密钥轮换**，请选择**启用**。
**注意**  
如果 KMS 密钥已禁用或待删除，则 AWS KMS 不会轮换密钥材料，也无法更新自动密钥轮换状态或轮换周期。启用 KMS 密钥或取消删除以更新自动密钥轮换配置。有关详细信息，请参阅 [密钥轮换的工作原理](rotate-keys.md#rotate-keys-how-it-works) 和 [密 AWS KMS 钥的关键状态](key-state.md)。

1. （可选）键入介于 90 到 2560 天之间的轮换周期。默认值为 365 天。如果您未指定自定义轮换周期，则 AWS KMS 将每年轮换密钥材料。

   您可以使用 k [ms: RotationPeriodInDays](conditions-kms.md#conditions-kms-rotation-period-in-days) 条件键来限制委托人可以为轮换周期指定的值。

1. 选择**保存**。

## 使用 AWS KMS API
<a name="rotate-keys-api"></a>

您可以使用 [AWS Key Management Service （AWS KMS）API](https://docs.aws.amazon.com/kms/latest/APIReference/) 启用自动密钥轮换，并查看任何客户托管密钥的当前轮换状态。这些示例使用 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)，但您可以使用任何受支持的编程语言。

该[EnableKeyRotation](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKeyRotation.html)操作可为指定的 KMS 密钥启用自动密钥轮换。要标识此操作中的 KMS 密钥，请使用其[密钥 ID](concepts.md#key-id-key-id) 或[密钥 ARN](concepts.md#key-id-key-ARN)。在默认情况下，客户托管密钥的密钥轮换处于禁用状态。

您可以使用[ kms:RotationPeriodInDays](conditions-kms.md#conditions-kms-rotation-period-in-days)条件键来限制委托人可以为`EnableKeyRotation`请求的`RotationPeriodInDays`参数指定的值。

以下示例在指定的对称加密 KMS 密钥上启用密钥轮换，轮换周期为 180 天，并使用该[GetKeyRotationStatus](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyRotationStatus.html)操作来查看结果。

```
$ aws kms enable-key-rotation \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --rotation-period-in-days 180

$ aws kms get-key-rotation-status --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
{
    "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyRotationEnabled": true,
    "RotationPeriodInDays": 180,
    "NextRotationDate": "2024-02-14T18:14:33.587000+00:00"
}
```