本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
中的别名 Amazon KMS
别名是 Amazon KMS key的友好名称。例如,别名允许您将 KMS 密钥引用为 test-key
,而不是 1234abcd-12ab-34cd-56ef-1234567890ab
。
您可以使用别名在 Amazon KMS 控制台、操作和加密DescribeKey操作(例如 E n crypt 和)中标识 KMS 密钥。GenerateDataKey别名还使您能够轻松识别 Amazon 托管式密钥。这些 KMS 密钥的别名始终具有 aws/
形式。例如,亚马逊 DynamoD Amazon 托管式密钥 B 的别名是。<service-name>
aws/dynamodb
您可以为项目建立类似的别名标准,例如在别名前加上项目或类别的名称。
您还可以根据 KMS 密钥的别名允许和拒绝访问 KMS 密钥,而无需编辑策略或管理授权。此功能是对基于属性的访问控制 (ABAC) 的 Amazon KMS 支持的一部分。有关更多信息,请参阅 使用别名控制对 KMS 密钥的访问。
别名的大部分功能来自于您随时更改与别名关联的 KMS 密钥的能力。别名可以使您的代码更易于编写和维护。例如,假设您使用别名来引用特定 KMS 密钥,并且您想要更改 KMS 密钥。在这种情况下,只需将别名与其他 KMS 密钥关联即可。您不需要更改您的代码。
别名还您更容易在不同 Amazon Web Services 区域中重用相同代码。在多个区域中创建具有相同名称的别名,并将每个别名与其区域中的 KMS 密钥关联。当代码在每个区域中运行时,别名将引用该区域中关联的 KMS 密钥。有关示例,请参阅了解如何在您的应用程序中使用别名。
您可以在 Amazon KMS 控制台中使用 CreateAliasAPI 或使用AWS::KMS::Alias Amazon CloudFormation 模板为 KMS 密钥创建别名。
该 Amazon KMS API 提供对每个账户和区域中的别名的完全控制。API 包括创建别名 (CreateAlias)、查看别名和别名 ARNs (ListAliases)、更改与别名关联的 KMS 密钥 (UpdateAlias) 以及删除别名 (DeleteAlias) 的操作。
别名的作用方式
了解别名在 Amazon KMS中的作用方式。
- 别名是一种独立的 Amazon 资源
-
别名不是 KMS 密钥的属性。您对别名执行的操作不会影响其关联的 KMS 密钥。您可以为 KMS 密钥创建别名,然后更新别名,使其与其他 KMS 密钥相关联。您甚至可以删除别名,而不会对关联的 KMS 密钥产生任何影响。但是,如果您删除 KMS 密钥,则会删除与该 KMS 密钥关联的所有别名。
如果您在 IAM policy 中指定别名作为资源,则该策略将引用别名,而不是关联的 KMS 密钥。
- 每个别名都有两种格式
-
创建别名时,需要指定别名。 Amazon KMS 为您创建别名 ARN。
- 别名不是密钥
-
别名可能会以纯文本形式显示在 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-key
和project-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 操作的有效密钥标识符的信息,请参阅《AP Amazon Key Management Service I 参考》中对
KeyId
参数的描述。您不能使用别名名称或别名 ARN 来标识 IAM policy 中的 KMS 密钥。要根据别名控制对 KMS 密钥的访问权限,请使用 k ms: RequestAlias 或 k ms: ResourceAliases 条件密钥。有关更多信息,请参阅 ABAC for Amazon KMS。