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

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

关于别名

了解别名在 AWS KMS 中的工作原理。

别名是独立的 AWS 资源

别名不是 CMK 的属性。您对别名执行的操作不会影响其关联的 CMK。您可以为 CMK 创建别名,然后更新别名,使其与其他 CMK 相关联。您甚至可以删除别名,而不会影响关联的 CMK。但是,如果删除 CMK,则会删除与该 CMK 关联的所有别名。

如果您在 IAM 策略中指定别名作为资源,则该策略将引用别名,而不是关联的 CMK。

每个别名都有两种格式

当您创建别名时,请指定别名名名。AWS KMS 为您创建别名 ARN。

  • 一个别名 ARN是唯一标识别名的 Amazon 资源名称 (ARN)。

    # Alias ARN arn:aws:kms:us-west-2:111122223333:alias/<alias-name>
  • 一个别名在账户和区域中是唯一的。在 AWS KMS API 中,别名始终以alias/。AWS KMS 控制台中省略了该前缀。

    # Alias name alias/<alias-name>
每个别名一次与一个 CMK 关联

别名及其 CMK 必须位于同一账户和区域中。

您可以将别名与任何客户托管 CMK位于同一 AWS 账户和所在区域中。但是,您无权将别名与AWS 托管 CMK

例如,此ListAliases输出显示test-key别名仅与一个目标 CMK 相关联,该目标由TargetKeyId属性。

{ "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 }
多个别名可以与同一 CMK 关联

例如,您可以将test-keyproject-key具有相同 CMK 的别名。

{ "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 }, { "AliasName": "alias/project-key", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/project-key", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1516435200.399, "LastUpdatedDate: 1516435200.399 }
别名在账户和所在区域中必须是唯一的

例如,您只能有一个test-key别名。别名区分大小写,但只有大小写不同的别名很容易出错。您不能更改别名称。但是,您可以删除别名并使用所需名称创建新别名。

您可以在不同区域中创建具有相同名称的别名

例如,您可以具有finance-key别名在美国东部(弗吉尼亚北部)和finance-key别名在欧洲(法兰克福)。每个别名都将与其区域中的 CMK 相关联。如果你的代码引用像alias/finance-key,您可以在多个区域中运行。在每个区域中,它使用不同的 CMK。有关详细信息,请参阅 在应用程序中使用别名

您可以更改与别名相关联的 CMK

您可以将UpdateAlias操作将别名与不同的 CMK 关联。例如,如果finance-key别名与1234abcd-12ab-34cd-56ef-1234567890abCMK,您可以更新它,以便它与0987dcba-09fe-87dc-65ba-ab0987654321CMK。

但是,当前的 CMK 和新 CMK 必须为相同类型(均为对称或都是非对称的),并且它们必须为相同类型密钥用法(加密 _ 解密或签名 _ 验证)。此限制可防止使用别名的代码中出现错误。如果您必须将别名与其他类型的密钥关联,并且已降低风险,则可以删除并重新创建别名。

某些 CMK 没有别名

当您在 AWS KMS 控制台中创建 CMK 时,您必须为其指定一个新别名。但是当您使用CreateKey操作以创建 CMK。此外,您可以使用UpdateAlias操作来更改与别名关联的 CMK 和DeleteAlias操作删除别名。因此,某些 CMK 可能有多个别名,有些可能没有别名。

AWS 在您的账户中创建别名

AWS 在您的账户中为AWS 托管 CMK。这些别名具有alias/aws/<service-name>之外的压缩算法(例如alias/aws/s3

某些 AWS 别名没有 CMK。当您开始使用该服务时,这些预定义别名通常与 AWS 托管的 CMK 相关联。

使用别名标识 CMK

您可以使用别名或者别名 ARN来标识 CMK加密操作DescribeKey, 和GetPublicKey。(如果CMK 位于不同的 AWS 账户中,则必须使用其密钥 ARN或别名 ARN。) 别名是其他 AWS KMS 操作中 CMK 的有效标识符。有关有效的信息密钥标识符对于每个 AWS KMS API 操作,请参阅KeyId中的参数AWS Key Management Service API 参考

您不能使用别名称或别名 ARN在 IAM 策略中识别 CMK。要根据 CMK 别名控制对其访问,请使用KMS: 请求别名或者KMS: 资源别名条件键。有关详细信息,请参阅 使用适用于 AWS KMS 的 ABAC