AWS認定資格 WEB問題集&徹底解説

CloudOpsエンジニア -アソシエイト

正解 A問題
要復習(もう一度解きたい問題) 1 2 3 4
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
ある企業では、Amazon DynamoDB テーブルに保存されている顧客の個人情報を暗号化する必要があります。保存時の暗号化を使用し、暗号化キーを 2 年ごとにローテーションしたうえで、そのローテーションの実施状況を監査人に証明できることがコンプライアンス要件として定められています。
運用上のオーバーヘッドを最小限に抑えながら、この要件を満たすにはどの方法が最適ですか。
  • AWS KMS でカスタマー管理キーを作成して DynamoDB テーブルの保存時の暗号化に使用し、ローテーション周期を 2 年に設定して自動キーローテーションを有効化する
  • アプリケーション層でデータを暗号化してから DynamoDB に保存し、キーの保管とローテーションをアプリケーション側で独自に実装する
  • DynamoDB のデフォルト暗号化(AWS 所有キー)をそのまま使用し、AWS 側で自動的にキーをローテーションさせる
  • 外部のハードウェアセキュリティモジュール(HSM)でキーマテリアルを生成して AWS KMS にインポートし、そのキーで自動キーローテーションを有効化する
解説 頻出度★★★★★
この問題は、「保存時の暗号化 × 2 年ごとのキーローテーション × 監査証明 × 運用負荷最小」の要件で、KMS カスタマー管理キー(CMK)の自動キーローテーションを選べるかがポイント。キーの種類(AWS 所有/AWS マネージド/カスタマー管理/インポート)ごとのローテーション可否が問われている
正解

A. AWS KMS でカスタマー管理キーを作成して DynamoDB テーブルの保存時の暗号化に使用し、ローテーション周期を 2 年に設定して自動キーローテーションを有効化する

Amazon DynamoDB の保存時の暗号化では、テーブルの暗号化キーにAWS KMS のカスタマー管理キーを指定できる。
カスタマー管理キー(AWS KMS が生成した対称キー)は自動キーローテーションに対応しており、ローテーション周期は既定 365 日だが 90〜2560 日の範囲で指定できるため、2 年(730 日)ちょうどの周期を設定できる。有効化はスイッチ 1 つで、以降 AWS が自動でキーマテリアルを更新するため運用負荷は最小。
さらにキーポリシー・ローテーション設定・使用履歴(AWS CloudTrail)を利用者側で確認できるため、監査人へのローテーション実施の証明も可能。要件をすべて満たす正解。

B. アプリケーション層でデータを暗号化してから DynamoDB に保存し、キーの保管とローテーションをアプリケーション側で独自に実装する

クライアントサイド暗号化は技術的には可能だが、キーの安全な保管・配布、ローテーション処理の実装、再暗号化、全アプリケーションへの展開をすべて自前で背負うことになる。
「運用上のオーバーヘッドを最小限に抑える」という要件と正面から衝突し、マネージドサービスで実現できることをわざわざ自作している。
DynamoDB は標準で保存時の暗号化を備えており、そもそもアプリ側で暗号化する必要がない。

C. DynamoDB のデフォルト暗号化(AWS 所有キー)をそのまま使用し、AWS 側で自動的にキーをローテーションさせる

DynamoDB のデフォルトは AWS 所有キー(AWS owned key)で、追加料金なしに保存時の暗号化を提供する。しかしこのキーは複数の AWS アカウントで共有される AWS 管理下のキーで、利用者のアカウントには存在しない
そのためキーポリシーを設定できず、CloudTrail でキーの使用状況を追跡することもできず、ローテーションの周期や実施状況を利用者が確認・制御できない
「2 年ごとにローテーションしていることを監査人に証明する」という要件を満たせないため不適。

D. 外部のハードウェアセキュリティモジュール(HSM)でキーマテリアルを生成して AWS KMS にインポートし、そのキーで自動キーローテーションを有効化する

外部で生成したキーマテリアルを KMS にインポートした KMS キー(オリジン EXTERNAL)は、自動キーローテーションに対応していない(対応するのはオンデマンドローテーション、すなわち新しいキーマテリアルを都度インポートする方式のみ)。
したがって「自動キーローテーションを有効化する」という選択肢の記述自体が成立せず、2 年ごとのローテーションを人手または独自の自動化で回し続けることになる。
キーマテリアルの生成・保管・再インポートの手間が増え、運用負荷最小の要件に反する

これだけ覚える(記憶フック)
ローテーションを「自分で決めて・証明する」ならカスタマー管理キー。AWS 所有キーは見えない、インポートキーは自動回せない。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
DynamoDB の保存時の暗号化を使用する DynamoDB は標準で保存時の暗号化に対応。アプリ層で自前暗号化する必要はない
→選択肢(B)を消す
暗号化キーを 2 年ごとにローテーションする KMS の自動キーローテーションは周期を 90〜2560 日で指定可能(既定 365 日)。2 年=730 日を設定できる
→選択肢(A)が正解
ローテーションの実施を監査人に証明できる AWS 所有キーはキーポリシーも使用履歴も利用者から見えないため、証明できない
→選択肢(C)を消す
運用上のオーバーヘッドを最小限に抑える インポートしたキーマテリアルは自動ローテーション非対応で、都度の再インポートが必要になる
→選択肢(D)を消す
キーの種類の選択 制御・監査・自動ローテーションを両立できるのはKMS カスタマー管理キーだけ
→選択肢(A)が正解
ひっかけポイント
  • 選択肢 C の「AWS 側で自動的にローテーションされる」は事実ではあるが、その周期も実施状況も利用者からは確認できない。コンプライアンス証跡が要件に入った瞬間に AWS 所有キーは脱落する
  • 「HSM で生成したキー」は最も堅牢そうに見えるのが罠。インポートされたキーマテリアルは KMS の自動キーローテーションが使えない(オンデマンドローテーションのみ)
  • 自動キーローテーションは対称暗号化のカスタマー管理キー(KMS 生成)限定。非対称キー・HMAC キー・カスタムキーストアのキーは対象外
  • 自動ローテーションで入れ替わるのは裏側のキーマテリアルだけで、キー ID や ARN は変わらない。古いデータの再暗号化も不要(過去のキーマテリアルが保持され復号できる)
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「キーは1 年ごとにローテーションすればよい」 正解は変わらないが、KMS の既定周期(365 日)のまま自動ローテーションを有効化するだけで済む。
今すぐキーをローテーションしたい(漏洩の疑い)」 オンデマンドローテーション(RotateKeyOnDemand)が正解軸に。インポートキーでも実行できる。
「キーマテリアルを自社の HSM で生成・管理し続けたい(BYOK)」 インポートされたキーマテリアルまたは AWS CloudHSM キーストアが正解軸になり、ローテーションは手動運用になる。
「暗号化のコストを抑えたい・キーの制御は不要」 AWS 所有キー(DynamoDB のデフォルト)で十分という結論に変わる(追加料金なし)。
誰がいつこのキーで復号したかを追跡したい」 カスタマー管理キー+AWS CloudTrail でのキー使用状況の記録が正解軸に。
関連サービスの解説 Amazon DynamoDB
AWS Key Management Service (AWS KMS)
リファレンス この問題を解くために必要な知識を扱う公式ドキュメントです。
知識項目 公式ドキュメント
KMS キーの自動キーローテーション(対象キー・周期・インポートキーの制限) AWS KMS keys のローテーション
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 67%
No.19 解説
ある企業では、Amazon DynamoDB テーブルに保存されている顧客の個人情報を暗号化する必要があります。保存時の暗号化を使用し、暗号化キーを 2 年ごとにローテーションしたうえで、そのローテーションの実施状況を監査人に証明できることがコンプライアンス要件として定められています。
運用上のオーバーヘッドを最小限に抑えながら、この要件を満たすにはどの方法が最適ですか。
  • AWS KMS でカスタマー管理キーを作成して DynamoDB テーブルの保存時の暗号化に使用し、ローテーション周期を 2 年に設定して自動キーローテーションを有効化する
  • アプリケーション層でデータを暗号化してから DynamoDB に保存し、キーの保管とローテーションをアプリケーション側で独自に実装する
  • DynamoDB のデフォルト暗号化(AWS 所有キー)をそのまま使用し、AWS 側で自動的にキーをローテーションさせる
  • 外部のハードウェアセキュリティモジュール(HSM)でキーマテリアルを生成して AWS KMS にインポートし、そのキーで自動キーローテーションを有効化する

(会員限定)当問題の評価をお願いします。改善に活用します。