管理别名 - AWS Key Management Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

管理别名

授权用户可以创建、查看和删除别名。您还可以更新别名,即将现有别名与其他 CMK 相关联。

创建别名

您可以在 AWS KMS 控制台中或使用 AWS KMS API 操作创建别名。

别名必须为 1-256 个字符的字符串。它只能包含字母数字字符、正斜杠 (/)、下划线 (_) 和连字符 (-)。的别名客户托管 CMK不能以开头alias/aws/alias/aws/ 前缀保留用于 AWS 托管 CMK

您可以为新 CMK 或现有 CMK 创建别名。您可以添加别名,以便在项目或应用程序中使用特定 CMK。

创建别名(控制台)

当您 时创建 CMK,AWS KMS 须为新 CMK 创建别名。要为现有 CMK 创建别名,请使用别名选项卡上的 CMK。

  1. 登录到 AWS 管理控制台,然后通过以下网址打开 AWS Key Management Service (AWS KMS) 控制台:https://console.aws.amazon.com/kms

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

  3. 在导航窗格中,选择客户托管密钥。您无法管理 AWS 托管的 CMK 或 AWS 拥有的 CMK 的别名。

  4. 在表中,选择 CMK 的密钥 ID 或别名。然后,在 CMK 详情页面上,选择别名选项卡。

    如果 CMK 有多个别名,则别名列显示一个别名和一个别名摘要,例如(+n更多)。选择别名摘要将直接进入别名选项卡上的 “CMK 详细信息” 页面。

  5. 在存储库的别名选项卡上,选择创建别名。输入别名,然后选择创建别名

    注意

    在控制台中,您无需指定alias/前缀. 控制台会为您添加它。如果您输入alias/ExampleAlias,实际别名将是alias/alias/ExampleAlias

创建别名(AWS KMS API)

要创建别名,请使用 CreateAlias 操作。与在控制台中创建 CMK 的过程不同,CreateKey操作不会为新 CMK 创建别名。

您可以将CreateAlias操作为新 CMK 创建别名,不带别名的别名。您也可以使用CreateAlias操作将别名添加到任何现有 CMK 或重新创建意外删除的别名。

在 AWS KMS API 操作中,别名必须以alias/后跟一个名称(例如)alias/ExampleAlias。别名在账户和区域中必须是唯一的。若要查找已在使用的别名,请使用ListAliasesoperation. 别名称区分大小写。

这些区域有:TargetKeyId可以是任意客户托管 CMK位于相同 AWS 区域。要标识 CMK,请使用其密钥 ID或者密钥 ARN。您不能使用另一个别名。

以下示例将创建example-key别名,并将其与指定的 CMK 相关联。这些示例使用 AWS Command Line Interface (AWS CLI)。有关使用多种编程语言的示例,请参阅使用别名

$ aws kms create-alias \ --alias-name alias/example-key \ --target-key-id 1234abcd-12ab-34cd-56ef-1234567890ab

CreateAlias不返回任何输出。要查看新别名,请使用ListAliasesoperation. 有关详细信息,请参阅 查看别名(AWS KMS API)

查看别名

别名使您可以在 AWS KMS 控制台中轻松识别 CMK。您可以在 AWS KMS 控制台中查看 CMK 的别名,也可以使用ListAliasesoperation. 这些区域有:DescribeKey操作(返回 CMK 的属性)不包含别名。

查看别名(控制台)

这些区域有:客户托管密钥AWS 托管密钥页面将 AWS KMS 与每个 CMK 关联的别名。您还可以搜索、排序和筛选CMK 基于别名。

下面的 AWS KMS 控制台图像显示了客户托管密钥页面的示例帐户。如图所示,某些 CMK 没有别名。

当 CMK 具有多个别名时,别名列显示一个别名和别名摘要 (+n更多)。别名摘要显示与 CMK 相关联的附加别名数量,以及指向 CMK 上显示所有别名的链接别名选项卡。


          中的别名客户托管密钥AWS KMS 控制台的页面

这些区域有:别名选项卡显示账户和 AWS 区域中 CMK 所有别名的别名和别名 ARN。您也可以使用别名选项卡创建别名删除别名

要查找 CMK 的所有别名的别名和别名 ARN,请使用别名选项卡。

  • 要直接转到别名选项卡上的别名列中,选择别名摘要 (+n更多)。仅当 CMK 具有多个别名时,才会显示别名摘要。

  • 或者,选择 CMK 的别名或密钥 ID(打开 CMK 的详细信息页面),然后选择别名选项卡。这些选项卡位于常规配置部分。

下图显示了别名选项卡查看示例 CMK。

您可以使用别名识别 AWS 托管的 CMK,如本示例所示AWS 托管密钥页. AWS 托管 CMK 的别名始终具有以下格式:aws/<service-name>。例如,AWS 托管 Amazon DynamoDB CMK 的别名为aws/dynamodb


          中的别名AWS 托管密钥AWS KMS 控制台的页面

查看别名(AWS KMS API)

这些区域有:ListAliases操作返回账户和区域中别名的别名和别名 ARN。输出包括 AWS 托管 CMK 和客户管理的 CMK 的别名。AWS 托管 CMK 的别名具有aws/<service-name>之外的压缩算法(例如aws/dynamodb

该响应可能还包括没有 TargetKeyId 字段的别名。这些是 AWS 已创建但尚未与 CMK 关联的预定义别名。

$ aws kms list-aliases { "Aliases": [ { "AliasName": "alias/access-key", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/access-key", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1516435200.399, "LastUpdatedDate: 1516435200.399 }, { "AliasName": "alias/ECC-P521-Sign", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/ECC-P521-Sign", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1693622000.704, "LastUpdatedDate: 1693622000.704 }, { "AliasName": "alias/ImportedKey", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/ImportedKey", "TargetKeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d", "CreationDate": 1493622000.704, "LastUpdatedDate: 1521097200.235 }, { "AliasName": "alias/finance-project", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/finance-project", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1604958290.014, "LastUpdatedDate: 1604958290.014 }, { "AliasName": "alias/aws/dynamodb", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/dynamodb", "TargetKeyId": "0987ab65-43cd-21ef-09ab-87654321cdef", "CreationDate": 1521097200.454, "LastUpdatedDate: 1521097200.454 }, { "AliasName": "alias/aws/ebs", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/ebs", "TargetKeyId": "abcd1234-09fe-ef90-09fe-ab0987654321", "CreationDate": 1466518990.200, "LastUpdatedDate: 1466518990.200 } ] }

要获取与特定 CMK 关联的所有别名,请使用可选的KeyId的参数ListAliasesoperation. 这些区域有:KeyId参数接受密钥 ID或者密钥 ARNCMK。

此示例获取与0987dcba-09fe-87dc-65ba-ab0987654321CMK。

$ aws kms list-aliases --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 { "Aliases": [ { "AliasName": "alias/access-key", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/access-key", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1516435200.399, "LastUpdatedDate: 1516435200.399 }, { "AliasName": "alias/finance-project", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/finance-project", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1604958290.014, "LastUpdatedDate: 1604958290.014 } ] }

这些区域有:KeyId参数不采用通配符,但您可以使用编程语言的功能筛选响应。

例如,以下 AWS CLI 命令仅获取 AWS 托管 CMK 的别名。

$ aws kms list-aliases --query 'Aliases[?starts_with(AliasName, `alias/aws/`)]'

以下命令只获取access-key别名。别名名称区分大小写。

$ aws kms list-aliases --query 'Aliases[?AliasName==`alias/access-key`]' [ { "AliasName": "alias/access-key", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/access-key", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1516435200.399, "LastUpdatedDate: 1516435200.399 } ]

更新别名

由于别名是独立的资源,因此您可以更改与别名关联的 CMK。例如,如果test-key别名与一个 CMK 关联,则可以使用UpdateAlias操作将其与其他 CMK 相关联。这是以下几种方法之一:手动旋转 CMK而不改变其关键材料。您还可以更新 CMK,以便将一个 CMK 用于新资源的应用程序现在正在使用不同的 CMK。

您无法在 AWS KMS 控制台中更新别名。另外,您不能使用UpdateAlias(或任何其他操作)更改别名称。要更改别名名称,请删除当前别名,然后为 CMK 创建新的别名。

更新别名时,当前的 CMK 和新 CMK 必须为相同类型(均为对称或都是非对称的)。它们还必须具有相同的密钥用法 ()ENCRYPT_DECRYPT或者SIGN_VERIFY)。此限制可防止使用别名的代码中出现加密错误。

以下示例首先使用ListAliases操作来显示test-key别名当前与 CMK 关联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别名转换为 CMK0987dcba-09fe-87dc-65ba-ab0987654321。您无需指定当前关联的 CMK,只需指定新的(以下简称 “目标”)CMK。别名称区分大小写。

$ aws kms update-alias --alias-name 'alias/test-key' --target-key-id 0987dcba-09fe-87dc-65ba-ab0987654321

要验证别名现在与目标 CMK 关联,请使用ListAliases操作。此 AWS CLI 命令使用--query参数来仅获取test-key别名。这些区域有:TargetKeyIdLastUpdatedDate字段将更新。

$ 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 } ]

删除别名

您可以在 AWS KMS 控制台中删除别名,也可以使用DeleteAliasoperation. 删除别名之前,请确保别名未使用。虽然删除别名不会影响关联的 CMK,但它可能会给使用别名的任何应用程序造成问题。如果错误地删除了别名,则可以创建具有相同名称的新别名,并将其与相同或不同的 CMK 关联。

如果删除 CMK,则会删除与该 CMK 关联的所有别名。

删除别名(控制台)

要在 AWS KMS 控制台中删除别名,请使用别名选项卡上的 CMK。您可以一次删除 CMK 的多个别名。

  1. 登录到 AWS 管理控制台,然后通过以下网址打开 AWS Key Management Service (AWS KMS) 控制台:https://console.aws.amazon.com/kms

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

  3. 在导航窗格中,选择客户托管密钥。您无法管理 AWS 托管的 CMK 或 AWS 拥有的 CMK 的别名。

  4. 在表中,选择 CMK 的密钥 ID 或别名。然后,在 CMK 详情页面上,选择别名选项卡。

    如果 CMK 有多个别名,则别名列显示一个别名和一个别名摘要,例如(+n更多)。选择别名摘要将直接进入别名选项卡上的 “CMK 详细信息” 页面。

  5. 在存储库的别名选项卡上,选中要删除的别名旁边的复选框。然后选择 Delete

删除别名(AWS KMS API)

要删除别名,请使用 DeleteAlias 操作。此操作一次删除一个别名。别名名名称区分大小写,且必须在alias/前缀.

例如,以下命令删除test-key别名。此命令不返回任何输出。

$ aws kms delete-alias --alias name alias/test-key

要确认已删除别名,请使用ListAliasesoperation. 以下命令使用--query参数 AWS 仅获取test-key别名。响应中的空括号表示ListAliases响应不包含test-key别名。要消除括号,请使用--output text参数和值。

$ aws kms list-aliases --query 'Aliases[?AliasName==`alias/test-key`]' []