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