本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
中的別名 AWS KMS
別名是 AWS KMS key的易記名稱。例如,別名可讓您將 KMS 金鑰稱為 test-key
,而不是 1234abcd-12ab-34cd-56ef-1234567890ab
。
您可以使用別名在 AWS KMS 主控台、DescribeKey 操作和密碼編譯操作中識別 KMS 金鑰,例如 Encrypt 和 GenerateDataKey。別名也可以很容易地識別 AWS 受管金鑰。這些 KMS 金鑰的別名一律具有 aws/
格式。例如, AWS 受管金鑰 適用於 Amazon DynamoDB 的 別名為 <service-name>
aws/dynamodb
。您可以為專案建立類似的別名標準,例如在別名前面加上專案或品類的名稱。
您也可以根據其別名允許和拒絕存取 KMS 金鑰,而不需編輯政策或管理授權。此功能是屬性型存取控制 (ABAC) AWS KMS 支援的一部分。如需詳細資訊,請參閱 使用別名來控制對 KMS 金鑰的存取。
別名的大部分功能來自於您隨時變更與別名相關聯之 KMS 金鑰的能力。別名可以讓您的程式碼更容易撰寫和維護。例如,假設您使用別名來指代特定的 KMS 金鑰,而且您想要變更 KMS 金鑰。在這種情況下,只要將別名與不同的 KMS 金鑰建立關聯即可。您不需要變更程式碼。
別名也可以更容易在不同的 AWS 區域中重複使用相同的程式碼。在多個區域中建立具有相同名稱的別名,並將每個別名與其區域中的 KMS 金鑰產生關聯。當程式碼在每個區域中執行時,別名是指該區域中相關聯的 KMS 金鑰。如需範例,請參閱「了解如何在應用程式中使用別名」。
您可以在 AWS KMS 主控台、使用 CreateAlias API 或使用 AWS::KMS::Alias AWS CloudFormation 範本來建立 KMS 金鑰的別名。
AWS KMS API 提供每個帳戶和區域中別名的完整控制。API 包含用於建立別名 (CreateAlias)、檢視別名名稱和別名 ARN (ListAliases)、變更與別名相關聯的 KMS 金鑰 (UpdateAlias) 和刪除別名 (DeleteAlias) 的操作。
別名的運作方式
了解別名如何在 AWS KMS運作。
- 別名是獨立 AWS 資源
-
別名不是 KMS 金鑰的屬性。您對別名所採取的動作不會影響其關聯的 KMS 金鑰。您可以為 KMS 金鑰建立別名,然後更新別名,讓其與不同的 KMS 金鑰相關聯。您甚至可以刪除別名,而不會對相關聯的 KMS 金鑰造成任何影響。不過,如果您刪除 KMS 金鑰,則會刪除與該 KMS 金鑰相關聯的所有別名。
如果您在 IAM 政策中指定別名作為資源,則政策會指代別名,而不是關聯的 KMS 金鑰。
- 每個別名都有兩種格式
-
當您建立別名時,您可以指定別名 name. AWS KMS creates the alias ARN。
- 別名並非秘密
-
別名可能在 CloudTrail 日誌與其他輸出中以純文字顯示。請勿在別名名稱包含機密或敏感資訊。
- 每個別名一次都與一個 KMS 金鑰相關聯
-
別名及其 KMS 金鑰必須位於相同的帳戶和區域中。
您可以將別名與相同 AWS 帳戶 和 區域中的任何客戶受管金鑰建立關聯。不過,您沒有將別名與 AWS 受管金鑰 相關聯的許可。
例如,此 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 或 SIGN_VERIFY 或 GENERATE_VERIFY_MAC)。此限制可避免使用別名之程式碼中的錯誤。如果您必須將別名與不同類型的金鑰建立關聯,且已降低風險,則可以刪除並重新建立別名。
- 某些 KMS 金鑰沒有別名
-
當您在 AWS KMS 主控台中建立 KMS 金鑰時,您必須為其提供新的別名。但是,當使用 CreateKey 操作來建立 KMS 金鑰時,不需要別名。此外,您可利用 UpdateAlias 操作來變更關聯別名的 KMS 金鑰,以及 DeleteAlias 操作來刪除別名。因此,某些 KMS 金鑰可能有數個別名,有些金鑰可能沒有。
- AWS 會在您的帳戶中建立別名
-
AWS 會在您的帳戶中為 建立別名AWS 受管金鑰。這些別名有
alias/aws/
格式的名稱,例如<service-name>
alias/aws/s3
。有些別名沒有 KMS AWS 金鑰。當您開始使用 服務 AWS 受管金鑰 時,這些預先定義的別名通常與 相關聯。
- 使用別名來識別 KMS 金鑰
-
您可以使用別名名稱或別名 ARN 來識別密碼編譯操作中的 KMS 金鑰、DescribeKey 和 GetPublicKey。(如果 KMS 金鑰位於不同的 AWS 帳戶,您必須使用其金鑰 ARN 或別名 ARN。) 別名在其他 AWS KMS 操作中不是 KMS 金鑰的有效識別符。如需有關每個 AWS KMS API 操作的有效金鑰識別符的資訊,請參閱 AWS Key Management Service API 參考中的
KeyId
參數說明。您不能使用別名名稱或別名 ARN 來識別 IAM 政策中的 KMS 金鑰。若要根據其別名控制對 KMS 金鑰的存取權,請使用 kms:RequestAlias 或 kms:ResourceAliases 條件索引鍵。如需詳細資訊,請參閱 ABAC for AWS KMS。