【正解】A
【0からの解説】
要件の核心は「KMS キーの作成・由来・使用に関する
変更不可能(immutable)な証拠を、コンプライアンス/監査向けに保存する」ことです。AWS で「いつ・誰が・何の API を呼んだか」を記録する標準サービスは
AWS CloudTrail です。CloudTrail は KMS の CreateKey や暗号化/復号などの API 呼び出しを記録できます。
「変更不可能」を実現する 2 つの仕組みが鍵です。
・
S3 オブジェクトロック:保存したログオブジェクトを一定期間(または無期限で)削除・上書きできないようにする WORM(Write Once Read Many)機能。これでログの改ざん・削除を防ぎます。
・
CloudTrail のログファイル検証(log file validation):ログファイルが配信後に改ざんされていないことをハッシュ(ダイジェスト)で検証できる機能。証拠の完全性を証明できます。
この 2 つを組み合わせ、CloudTrail のイベントセレクターで KMS の CreateKey と当該キー ARN を参照する呼び出しを捕捉し、改ざん不可能な S3 バケットに保存して監査人に読み取りアクセスを与える A が要件を完全に満たします。
【誤りの選択肢】
B:CloudWatch Logs は閲覧・分析には便利ですが、それ自体に WORM(変更不可能性)の保証はありません。アプリ側ログの自作はカバレッジも不確実で「immutable な証拠」要件を満たせません。
C:DynamoDB に API 内容を保存しても、テーブルのレコードは更新・削除が可能であり改ざん耐性がありません。Lambda 自作部分の信頼性・完全性証明も乏しいです。
D:CloudWatch ダッシュボードやアラームは監視・可視化向けで、改ざん不可能な監査証跡の保存手段ではありません。サブスクリプションでコピーしても WORM 保護にはなりません。
【参考】
CloudTrail ログファイルの整合性の検証S3 オブジェクトロックの使用AWS KMS の CloudTrail によるログ記録