在應用程式中使用別名 - AWS Key Management Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在應用程式中使用別名

您可以使用別名來代表應用程式程式碼中的KMS索引鍵。中的KeyId參數 AWS KMS 加密操作 DescribeKey,並GetPublicKey接受別名或別ARN名。

例如,下列GenerateDataKey指令會使用別名名稱 (alias/finance) 來識別機KMS碼。別名名稱為 KeyId 參數的值。

$ aws kms generate-data-key --key-id alias/finance --key-spec AES_256

如果KMS密鑰是在不同 AWS 帳戶,您必須ARN在這些作業中使用索引鍵ARN或別名。使用別名時ARN,請記住金鑰的別名是在擁有KMS金鑰的帳戶中定義的,而且每個區域可能會有所不同。KMS如需尋找別名的說明ARN,請參閱尋找別名和別名 ARN

例如,下列GenerateDataKey命令會使用不在呼叫者帳戶中的KMS金鑰。ExampleAlias別名與指定帳戶和區域中的KMS索引鍵相關聯。

$ aws kms generate-data-key --key-id arn:aws:kms:us-west-2:444455556666:alias/ExampleAlias --key-spec AES_256

別名最強大的用途之一是在多個應用程序中運行 AWS 區域。 例如,您可能有一個使用RSA非對稱KMS金鑰進行簽署和驗證的全域應用程式。

  • 在美國西部 (奧勒岡) (us-west-2) 中,您想要使用 arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

  • 在歐洲 (法蘭克福) (eu-central-1) 中,您想要使用 arn:aws:kms:eu-central-1:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321

  • 在亞太區域 (新加坡) (ap-southeast-1) 中,您想要使用 arn:aws:kms:ap-southeast-1:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d

您可以在每個區域中創建不同版本的應用程序,也可以使用字典或 switch 語句為每個區域選擇正確的KMS鍵。但是,更輕鬆的方式是在每個區域中建立具有相同別名名稱的別名。請記住,別名名稱區分大小寫。

aws --region us-west-2 kms create-alias \ --alias-name alias/new-app \ --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab aws --region eu-central-1 kms create-alias \ --alias-name alias/new-app \ --key-id arn:aws:kms:eu-central-1:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321 aws --region ap-southeast-1 kms create-alias \ --alias-name alias/new-app \ --key-id arn:aws:kms:ap-southeast-1:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d

然後,在程式碼中使用別名。當您的程式碼在每個區域中執行時,別名會參照該區域中其關聯的KMS金鑰。例如,此程式碼會使用別名名稱呼叫 Sign 操作。

aws kms sign --key-id alias/new-app \ --message $message \ --message-type RAW \ --signing-algorithm RSASSA_PSS_SHA_384

但是,可能會刪除或更新別名,以便與其他KMS金鑰產生關聯。在這種情況下,應用程式嘗試使用別名名稱驗證簽章將會失敗,您可能需要重新建立或更新別名。

若要降低此風險,請謹慎授予委託人管理您在應用程式中使用之別名的許可。如需詳細資訊,請參閱 控制對別名的存取

對於加密多個數據的應用程序,還有其他幾種解決方案 AWS 區域,包括 AWS Encryption SDK.