如何在 AWS KMS 中手动轮换客户管理的密钥?

上次更新时间:2021 年 6 月 25 日

AWS Key Management Service (AWS KMS) 会每年自动轮换 KMS 密钥。如何在每年自动轮换 KMS 密钥之前手动轮换它们?

解决方法

使用手动密钥轮换创建新的 KMS 密钥,以替换当前密钥。

此示例演示了如何使用您要轮换到的新密钥轮换当前的 AWS KMS 密钥。

注意:如果您在运行 AWS Command Line Interface (AWS CLI) 命令时遇到错误,请确保您使用的是最新版本的 AWS CLI

1.    创建一个名称为 application-current 的别名,然后将它附到新的 KMS 密钥上:

acbc32cf8f6f:~ $$ aws kms create-alias --alias-name alias/application-current --target-key-id 0987dcba-09fe-87dc-65ba-ab0987654321
acbc32cf8f6f:~ $$ aws kms list-aliases --output text | grep application
ALIASES    arn:aws:kms:eu-west-1:123456789012:alias/application-current    alias/application-current    0987dcba-09fe-87dc-65ba-ab0987654321

2.    创建一个名称为 application-20180606 的新别名,将轮换日期(在此例中为“2018-06-06”)包含在要轮换的 KMS 密钥的名称中。AWS KMS 密钥有两个别名:

acbc32cf8f6f:~ $$ aws kms create-alias --alias-name alias/application-20180606 --target-key-id 0987dcba-09fe-87dc-65ba-ab0987654321
acbc32cf8f6f:~ $$ aws kms list-aliases --output text | grep application
ALIASES    arn:aws:kms:eu-west-1:123456789012:alias/application-20180606    alias/application-20180606    0987dcba-09fe-87dc-65ba-ab0987654321
ALIASES    arn:aws:kms:eu-west-1:123456789012:alias/application-current     alias/application-current     0987dcba-09fe-87dc-65ba-ab0987654321
acbc32cf8f6f:~ $$ aws kms create-key
{
    "KeyMetadata": {
        "Origin": "AWS_KMS",
        "KeyId": "9bf76697-5b41-4caf-9fe1-e23bbe20f858",
        "Description": "",
        "KeyManager": "CUSTOMER",
        "Enabled": true,
        "KeyUsage": "ENCRYPT_DECRYPT",
        "KeyState": "Enabled",
        "CreationDate": 1528289057.531,
        "Arn": "arn:aws:kms:eu-west-1:123456789012:key/9bf76697-5b41-4caf-9fe1-e23bbe20f858",
        "AWSAccountId": "123456789012"
    }
}

4.    将 application-current 别名关联到新 KMS 密钥:

$$ aws kms update-alias --alias-name alias/application-current --target-key-id NEW_KMS_KEY_ID

5.    这时您拥有了新密钥和当前的 AWS KMS 密钥。使用 application-current 密钥来加密数据。AWS KMS 会在解密数据时自动解析 KMS 密钥:

acbc32cf8f6f:~ $$ aws kms list-aliases --output text | grep application
ALIASES    arn:aws:kms:eu-west-1:123456789012:alias/application-20180606    alias/application-20180606    0987dcba-09fe-87dc-65ba-ab0987654321
ALIASES    arn:aws:kms:eu-west-1:123456789012:alias/application-current     alias/application-current     9b5d79d7-f04c-4b30-baf1-deed52a7cc97

重要提示:将当前 KMS 密钥作为备份保存,以跟踪密钥轮换的发生时间或进行回滚更改。

注意:使用现有密钥的用户必须将该策略复制到 application-current 密钥。

6.    登录 KMS控制台并选择客户托管密钥

7.    在别名中,选择当前密钥。

8.    在 Key policy(密钥策略)中,选择 Switch to policy view(切换到策略视图)。

9.    复制当前策略,然后选择 Customer managed keys(客户托管密钥)。

10.    在 Alias(别名)中,选择 application-current

11.    在 Key Policy(密钥策略)中,选择 Edit(编辑),删除 application-current 策略,粘贴当前策略,然后选择 Save Changes(保存更改)。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?