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

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

关于别名

了解别名在 Amazon KMS 中的作用方式。

别名是独立的 Amazon 资源

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

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

每个别名都有两种格式

在创建别名时,请指定别名。Amazon KMS 会为您创建别名 ARN。

  • 别名 ARN 是唯一标识别名的 Amazon Resource Name (ARN)。

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

    # Alias name alias/<alias-name>
别名不是密钥

别名可能会以纯文本形式显示在 CloudTrail 日志和其他输出中。不要在别名名称中包含机密或敏感信息。

每个别名一次与一个 KMS 密钥关联

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

您可以将别名与相同 Amazon Web Services 账户 和区域中的任何客户托管密钥关联。但是,您无权将别名与 Amazon 托管式密钥 关联。

例如,此ListAliases输出显示test-key别名恰好与一个目标 KMS 密钥相关联,该密钥由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 }
多个别名可以与同一 KMS 密钥关联

例如,您可以将 test-keyproject-key 别名与同一个 KMS 密钥关联。

{ "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 别名。每个别名都将与其区域中的 KMS 密钥相关联。如果您的代码引用 alias/finance-key 之类的别名名称,您可以在多个区域中运行它。在每个区域中,它使用不同的 KMS 密钥。有关更多信息,请参阅 在应用程序中使用别名

您可以更改与别名关联的 KMS 密钥

您可以使用该UpdateAlias操作将别名与其他 KMS 密钥相关联。例如,如果 finance-key 别名与 1234abcd-12ab-34cd-56ef-1234567890ab KMS 密钥关联,您可以对其进行更新,使其与 0987dcba-09fe-87dc-65ba-ab0987654321 KMS 密钥关联。

但是,当前 KMS 密钥和新的 KMS 密钥必须是相同的类型(要么都是对称的,要么都是非对称的,要么都是 HMAC),并且它们必须具有相同的密钥用途(ENCRYPT_DECRYPT、SIGN_VERIFY 或 GENERATE_VERIFY_MAC)。此限制可防止使用别名的代码中出现错误。如果您必须将别名与其他类型的密钥关联,并且您已降低风险,则可以删除并重新创建别名。

有些 KMS 密钥没有别名

当您在 Amazon KMS 控制台中创建 KMS 密钥时,您必须为其指定新别名。但是,使用该CreateKey操作创建 KMS 密钥时,不需要别名。此外,您还可以使用UpdateAlias操作来更改与别名关联的 KMS 密钥,使用该DeleteAlias操作来删除别名。因此,有些 KMS 密钥可能有多个别名,有些可能没有别名。

Amazon 在您的账户中创建别名

Amazon 在您的账户中为 Amazon 托管式密钥 创建别名。这些别名具有 alias/aws/<service-name> 形式的名称,例如 alias/aws/s3

有些 Amazon 别名没有 KMS 密钥。这些预定义别名通常在您开始使用服务时就与 Amazon 托管式密钥 关联。

使用别名标识 KMS 密钥

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

您不能使用别名名称或别名 ARN 来标识 IAM policy 中的 KMS 密钥。要根据别名控制对 KMS 密钥的访问权限,请使用 k ms: RequestAlias 或 k ms: ResourceAliases 条件密钥。有关更多信息,请参阅 Amazon KMS 中的 ABAC