如何在 AWS KMS 中手动轮换客户托管的 CMK?

上次更新时间:2019 年 4 月 12 日

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

解决方法

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

此示例演示了如何使用我们要轮换到的新 CMK 轮换当前的 CMK。

重要提示:开始之前,您必须已经安装并且配置了 AWS 命令行界面 (AWS CLI)。

1.    创建一个名称为 application-current 的别名,然后将它挂载到新 CMK:

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 密钥的名称中。该 CMK 有两个别名:

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

3.    创建新 CMK,与以下类似:

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 别名关联到新 CMK:

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

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

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

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

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

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

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

8.    在密钥策略中,选择切换到策略视图

9.    复制当前策略,然后选择客户托管密钥

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

11.   在密钥策略中,选择编辑,删除 application-current 策略,粘贴当前策略,然后选择保存更改


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?