本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
中的别名 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密钥的别名允许和拒绝对密钥的访问,而无需编辑策略或管理授权。此功能是对基于属性的访问控制 () 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。
- 别名不是密钥
-
别名可能会以纯文本形式显示在 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密钥的类型必须相同(均为对称密钥或两者兼而有之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。