{KMS}マルチリージョンキーを作成する

https://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/multi-region-keys-create.html
https://dev.classmethod.jp/articles/kms-multi-region-keys/

マルチリージョンキーはグローバルではありません。
マルチリージョンのプライマリキーを作成し、そのキーを AWS パーティション内で選択するリージョンにレプリケートします。

 

-- 1. コマンド等のインストール

-- 1.1 aws cli version 2 インストール

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version

-- 1.2 jqインストール
sudo yum -y install jq

 

-- 2. マルチリージョンのプライマリキーを作成する
aws kms create-key --multi-region


aws kms describe-key \
--key-id arn:aws:kms:ap-northeast-1:999999999999:key/mrk-11111111111111111111111111111111


-- 3. マルチリージョンのプライマリキーを作成する

aws kms replicate-key \
--key-id arn:aws:kms:ap-northeast-1:999999999999:key/mrk-11111111111111111111111111111111 \
--replica-region ap-northeast-3

aws kms describe-key \
--key-id arn:aws:kms:ap-northeast-1:999999999999:key/mrk-11111111111111111111111111111111


-- 4. 動作確認

echo test20220320_ap-northeast-1 > a.txt
echo test20220320_ap-northeast-3 > b.txt

 

aws kms encrypt \
--region ap-northeast-1 \
--key-id mrk-11111111111111111111111111111111 \
--encryption-algorithm SYMMETRIC_DEFAULT \
--plaintext fileb://a.txt \
--output text \
--query CiphertextBlob | base64 --decode > a.enc


aws kms encrypt \
--region ap-northeast-3 \
--key-id mrk-11111111111111111111111111111111 \
--encryption-algorithm SYMMETRIC_DEFAULT \
--plaintext fileb://b.txt \
--output text \
--query CiphertextBlob | base64 --decode > b.enc

 

aws kms decrypt \
--region ap-northeast-1 \
--key-id mrk-11111111111111111111111111111111 \
--encryption-algorithm SYMMETRIC_DEFAULT \
--ciphertext-blob fileb://a.enc \
--output text \
--query Plaintext | base64 --decode

aws kms decrypt \
--region ap-northeast-1 \
--key-id mrk-11111111111111111111111111111111 \
--encryption-algorithm SYMMETRIC_DEFAULT \
--ciphertext-blob fileb://b.enc \
--output text \
--query Plaintext | base64 --decode


aws kms decrypt \
--region ap-northeast-3 \
--key-id mrk-11111111111111111111111111111111 \
--encryption-algorithm SYMMETRIC_DEFAULT \
--ciphertext-blob fileb://a.enc \
--output text \
--query Plaintext | base64 --decode

aws kms decrypt \
--region ap-northeast-3 \
--key-id mrk-11111111111111111111111111111111 \
--encryption-algorithm SYMMETRIC_DEFAULT \
--ciphertext-blob fileb://b.enc \
--output text \
--query Plaintext | base64 --decode


-- 5. クリーンアップ


-- レプリカキーの削除

aws kms describe-key \
--key-id mrk-11111111111111111111111111111111

aws kms schedule-key-deletion \
--key-id mrk-11111111111111111111111111111111 \
--pending-window-in-days 7 \
--region ap-northeast-3


-- プライマリキーの削除

aws kms describe-key \
--key-id mrk-11111111111111111111111111111111

aws kms schedule-key-deletion \
--key-id mrk-11111111111111111111111111111111 \
--pending-window-in-days 7


※プライマリキーとすべてのレプリカキーの削除の待機期間を 7 日間にスケジュールすると、
レプリカキーは 7 日後に削除されます。プライマリキーは 14 日後に削除されます。