更新别名
由于别名是独立的资源,因此您可以更改与别名关联的 KMS 密钥。例如,如果 test-key
别名与 一个 KMS 密钥关联,您可以使用 UpdateAlias 操作将其与另一个 KMS 密钥关联。这是手动轮换 KMS 密钥而不更改其密钥材料的几种方法之一。您还可以更新 KMS 密钥,以使将一个 KMS 密钥用于新资源的应用程序现在使用不同的 KMS 密钥。
您无法在 AWS KMS 控制台中更新别名。另外,您不能使用 UpdateAlias
(或任何其他操作)更改别名名称。要更改别名名称,请删除当前别名,然后为 KMS 密钥创建新的别名。
更新别名时,当前 KMS 密钥和新 KMS 密钥必须为相同类型(均为对称、非对称或 HMAC)。它们还必须拥有相同的密钥用法(ENCRYPT_DECRYPT
、SIGN_VERIFY
或 GENERATE_VERIFY_MAC)。此限制可防止使用别名的代码中出现加密错误。
下面的示例首先使用 ListAliases 操作来显示 test-key
别名当前与 KMS 密钥 1234abcd-12ab-34cd-56ef-1234567890ab
关联。
$
aws kms list-aliases --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
{ "Aliases": [ { "AliasName": "alias/test-key", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/test-key", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1593622000.191, "LastUpdatedDate": 1593622000.191 } ] }
接下来,它使用 UpdateAlias
操作将与 test-key
别名关联的 KMS 密钥更改为 KMS 密钥 0987dcba-09fe-87dc-65ba-ab0987654321
。您不需要指定当前关联的 KMS 密钥,只需指定新的(“目标”)KMS 密钥。别名名称区分大小写。
$
aws kms update-alias --alias-name 'alias/test-key' --target-key-id 0987dcba-09fe-87dc-65ba-ab0987654321
要验证别名现在是否已与目标 KMS 密钥关联,请再次使用 ListAliases
操作。该 AWS CLI 命令使用 --query
参数来仅获取 test-key
别名。TargetKeyId
和 LastUpdatedDate
字段将更新。
$
aws kms list-aliases --query 'Aliases[?AliasName==`alias/test-key`]'
[ { "AliasName": "alias/test-key", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/test-key", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1593622000.191, "LastUpdatedDate": 1604958290.154 } ]