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

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

中的别名 Amazon KMS

别名是 Amazon KMS key的友好名称。例如,别名允许您将KMS密钥引用为,test-key而不是1234abcd-12ab-34cd-56ef-1234567890ab

在 Amazon KMS 控制台、操作和加密DescribeKey操作(例如 E n crypt 和)中,您可以使用别名来标识密KMS钥。GenerateDataKey别名还使您能够轻松识别 Amazon 托管式密钥。这些KMS密钥的别名始终采用以下形式aws/<service-name>。例如,亚马逊 DynamoD Amazon 托管式密钥 B 的别名是。aws/dynamodb您可以为项目建立类似的别名标准,例如在别名前加上项目或类别的名称。

您还可以根据KMS密钥的别名允许和拒绝对密钥的访问,而无需编辑策略或管理授权。此功能是对基于属性的访问控制 () ABAC 的 Amazon KMS 支持的一部分。有关详细信息,请参阅使用别名控制对密钥的KMS访问

别名的力量在很大程度上来自于你能够随时更改与别名关联的KMS密钥。别名可以使您的代码更易于编写和维护。例如,假设您使用别名来指代特定的KMS密钥,并且想要更改该KMS密钥。在这种情况下,只需将别名与其他KMS密钥关联即可。您不需要更改您的代码。

别名还您更容易在不同 Amazon Web Services 区域中重用相同代码。在多个区域中创建同名别名,并将每个别名与其区域中的KMS密钥相关联。当代码在每个区域运行时,别名是指该区域中的关联KMS密钥。有关示例,请参阅了解如何在您的应用程序中使用别名

您可以使用或AWS::KMS: Alias Amazon CloudFormation 模板在 Amazon KMS 控制台中为KMS密钥创建别名CreateAliasAPI

Amazon KMS API提供了对每个账户和区域中别名的完全控制。API包括创建别名 (CreateAlias)、查看别名和别名 ARNs (ListAliases)、更改与别名 () 关联的KMS密钥以及删除别名 (DeleteAlias) 的操作。UpdateAlias

别名的作用方式

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

别名是一种独立的 Amazon 资源

别名不是密KMS钥的属性。您对别名采取的操作不会影响其关联的KMS密钥。您可以为KMS密钥创建别名,然后更新别名,使其与其他KMS密钥关联。您甚至可以在不影响关联KMS密钥的情况下删除别名。但是,如果您删除KMS密钥,则与该密KMS钥关联的所有别名都将被删除。

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

每个别名都有两种格式

创建别名时,需要指定别名。 Amazon KMS 为您创建别名ARN。

  • 别名ARN是唯一标识别名的 Amazon 资源名称 (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-1234567890abKMS密钥关联,则可以对其进行更新,使其与0987dcba-09fe-87dc-65ba-ab0987654321KMS密钥关联。

但是,当前密钥和新KMS密钥的类型必须相同(均为对称密钥或两者兼而有之HMAC),并且它们必须具有相同的密钥用法(ENCRYPT_ DECRYPT 或 _ VERIFY 或 SIGN _ 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。) 别名不是其他 Amazon KMS 操作中KMS密钥的有效标识符。有关每个 Amazon KMS API操作的有效密钥标识符的信息,请参阅《Amazon Key Management Service API参考资料》中对KeyId参数的描述。

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