KMSによる暗号化(マルチリージョンキー)難易度 高無料
ap-northeast-1で暗号化されたデータを、ディザスタリカバリ(DR)先のap-northeast-3でも、ap-northeast-1のKMSエンドポイントへ依存せずローカルに復号できるようにしたい。つまりap-northeast-1がリージョン障害で使えない状況でも、ap-northeast-3側だけで復号を完結させたい。この要件を満たす設計として最も適切なものを選べ。(単一選択)
- A単一リージョンのCMKのまま、IAMポリシーでap-northeast-3のプリンシパルにも
kms:Decryptを許可すれば、ap-northeast-1への依存なく復号できる - Bap-northeast-1にマルチリージョンのプライマリキーを作成し、ap-northeast-3にレプリカキーを作成する。両者は同じキーマテリアルを共有するため、プライマリで暗号化した暗号文をap-northeast-3のレプリカキーで直接(ap-northeast-1への依存なく)復号できる
- CCMKのキーマテリアルをエクスポートし、ap-northeast-3で同一マテリアルのCMKを手動で作成する
- Dデータキーをリージョンごとに個別に生成し、暗号文とは別の場所に保管しておけば、リージョンをまたいで復号できるようになる
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BAI作成・独立検証済
解説
KMSマルチリージョンキー(multi-Region keys)を使うと、この要件を満たせる。
- ap-northeast-1でプライマリキー(
mrk-接頭辞のキーID)を作成し、CreateReplicaKeyでap-northeast-3にレプリカキーを作成する。 - プライマリとレプリカは同一のキーマテリアル・キーID(リージョン部分を除く)を共有する独立したKMSキーとして振る舞う。
- そのため、プライマリ(ap-northeast-1)で暗号化した暗号文を、レプリカ(ap-northeast-3)のエンドポイントに対して直接
Decryptを呼ぶだけで復号できる。 リージョンをまたぐAPI呼び出しやap-northeast-1への依存は発生しない。
一方、通常の単一リージョンCMKでIAMポリシー側だけをクロスリージョンで許可しても、暗号文の復号はそのキーが存在するリージョンのKMSエンドポイントを呼び出す必要があるため、 ap-northeast-1への依存自体は解消されない(DRの目的である「原リージョン障害時の独立性」を満たせない)。
- A権限を許可しても、そのキーはap-northeast-1にしか存在しないため復号のAPI呼び出し先はap-northeast-1のKMSエンドポイントのままになる。ap-northeast-1障害時の独立性は得られない。
- CAWSが管理するキーマテリアル(標準のCMK)は通常エクスポートできない。この操作自体が成立しない。
- Dデータキーを個別生成しただけではCMKのリージョン依存の問題は解決しない。マルチリージョンキーのようにキー自体を各リージョンに独立して存在させる仕組みが必要。
ひっかけ: 「IAMポリシーでクロスリージョンのDecryptを許可すればよい(A)」という発想は罠。権限の許可とそのキーがどのリージョンに存在するか(呼び出し先エンドポイント)は別の話であり、
単一リージョンキーである限りDR先からもap-northeast-1のKMSを呼びに行く依存関係は消えない。またCMK(AWS管理のキーマテリアル)は通常エクスポートできない(C)点も要確認。
公式ドキュメント・関連AWS KMS Developer Guide ― Multi-Region keys↗
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)