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

2 分钟阅读
0

AWS Key Management Service (AWS KMS) 每年自动轮换一次 AWS KMS 密钥。我想在 AWS KMS 密钥自动轮换之前手动轮换。

解决方法

将当前的 AWS KMS 密钥手动轮换为新密钥,请完成以下步骤:

**注意:**如果在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,确保您使用的是最新版本的 AWS CLI

  1. 创建一个名为 application-current 的别名,然后将其附加到现有的 AWS KMS 密钥:

    acbc32cf8f6f:~ $$ aws kms create-alias --alias-name alias/application-current --target-key-id 0987dcba-09fe-87dc-65ba-ab0987654321acbc32cf8f6f:~ $$ 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. 为要轮换的 AWS KMS 密钥创建一个名为 application-20180606 的新别名,新别名中包含轮换日期。在以下示例中,轮换日期为 2018-06-06。AWS KMS 密钥有两个别名:

    acbc32cf8f6f:~ $$ aws kms create-alias --alias-name alias/application-20180606 --target-key-id 0987dcba-09fe-87dc-65ba-ab0987654321acbc32cf8f6f:~ $$ 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. 创建一个类似以下的新 AWS KMS 密钥

    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 别名关联到新 AWS KMS 密钥。将 NEW_KMS_KEY_ID 替换为您在步骤 3 中新创建的密钥 ID:

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

    **注意:**新 KMS 密钥无法解密使用旧密钥加密的数据。对于使用对称加密密钥加密的数据,AWS KMS 会从元数据中提取 AWS KMS 密钥 ID。然后,使用该密钥进行解密。确保您未在解密请求中指定密钥 ID。如果您使用非对称 AWS KMS 密钥,则必须在解密请求中手动指定密钥 ID。确保跟踪加密操作中使用的 AWS KMS 密钥。

  5. 现在您有新的和当前的 AWS KMS 密钥两个密钥。使用 application-current 密钥加密数据。当 AWS KMS 解密数据时,AWS KMS 密钥会自动解析:

    acbc32cf8f6f:~ $$ aws kms list-aliases --output text | grep applicationALIASES    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     9bf76697-5b41-4caf-9fe1-e23bbe20f858

    要跟踪密钥轮换的时间或回滚更改,请保留当前 AWS KMS 密钥作为备份。
    **注意:**如果您有现有密钥,则请将该策略复制到 application-current 密钥。

  6. 打开 AWS KMS 控制台,然后选择客户自主管理型密钥

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

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

  9. 复制当前策略,然后选择客户自主管理型密钥

  10. 别名中,选择 application-current

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

相关信息

如何将我的密钥导入 AWS Key Management Service?