アプリケーションでエイリアスを使用する方法について説明します。
エイリアスを使用して、アプリケーションコードで KMS キーを表示できます。AWS KMS 暗号化オペレーション、DescribeKey、GetPublicKey の KeyId パラメータは、エイリアス名またはエイリアス 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
エイリアスの最も強力な使用法の 1 つは、アプリケーションを複数の AWS リージョン で実行する場合です。例えば、署名と検証に RSA 非対称 KMS キーを使用するグローバルなアプリケーションがあるとします。
-
米国西部 (オレゴン) ( s-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 など) のデータを暗号化するアプリケーションには、他にも複数のソリューションがあります。