SAA-008
S3バケットに保存するオブジェクトをAWS管理の暗号化キーではなく、自社管理のKMSキーで暗号化したいです。最も適した暗号化方式はどれですか?
選択肢
解説と正解
解説と正解を読む(先に自分で回答してから開くのがおすすめです)
正解:B. SSE-KMS
解説
SSE-KMSを使うと、AWS KMSキーを使ってS3オブジェクトをサーバー側暗号化できます。カスタマー管理キーを使うことでキー管理を制御できます。
選択肢ごとの解説
A. SSE-S3
SSE-S3はS3管理キーによる暗号化です。自社管理のKMSキー要件には合いません。
B. SSE-KMS
正解です。KMSキーを使ったサーバー側暗号化です。
C. クライアント側で暗号化せずに保存する
暗号化しないため要件に反します。
D. S3 Transfer Acceleration
Transfer Accelerationは転送高速化機能であり、暗号化方式ではありません。
実務での使いどころ
S3 のサーバー側暗号化には、SSE-S3(S3 マネージドキー)、SSE-KMS(AWS KMS マネージドキー)、SSE-C(顧客提供キー)の 3 種類がある。自社管理の KMS キー(カスタマー管理 KMS キー / CMK)を使いたいケースでは SSE-KMS を選び、KMS キーポリシーで「どの IAM プリンシパルが暗号化/復号できるか」を細かく制御できる。CloudTrail と組み合わせれば、誰がいつ KMS キーを使って暗号化/復号したかの監査証跡も取得できるため、コンプライアンス要件のある業務データ保管に適している。 SSE-KMS にはトレードオフもある。S3 オブジェクトへのアクセスごとに KMS API(Decrypt / GenerateDataKey)が呼ばれるため、大量の S3 リクエストが発生するワークロードでは KMS のリクエスト課金が積み上がる。これを抑える機能として S3 Bucket Keys があり、有効化すると S3 がバケット単位のデータキーをローカルで再利用し、KMS への呼び出し回数を大幅に削減できる(コストが最大 99% 程度減るケースもある)。デフォルトの SSE-S3 や AWS マネージド KMS キー(`aws/s3`)を使えば管理は最小で済むが、キーローテーション制御やクロスアカウント共有を厳密にしたい場合はカスタマー管理 CMK を選ぶ。 SAA-C03 では「自社管理の暗号化キーで S3 を暗号化したい」「コンプライアンス要件で KMS 監査が必要」という文脈で SSE-KMS が正解となる。誤答として暗号化なし、Transfer Acceleration(転送高速化機能で暗号化とは無関係)が並ぶ。SSE-S3 と SSE-KMS の違い、Bucket Keys によるコスト最適化、CloudTrail 連携による監査も上位試験で問われる。