本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
了解如何在應用程式中使用別名
您可以使用別名來代表應用程式程式碼中的KMS金鑰。 AWS KMS 密碼編譯操作 、 DescribeKey和 中的 KeyId
參數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,請參閱 尋找索引KMS鍵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
。
您可以在每個區域中建立不同的應用程式版本,或使用字典或切換陳述式來為每個區域選取正確的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。