AI作成・AIで再検証済(有資格者監修なし)SAA-C03 対応
KMSによる暗号化(SSE-KMS・エンベロープ暗号化)難易度 標準無料

S3バケットのデフォルト暗号化を SSE-KMS(カスタマーマネージドキー指定)に設定し、10GBのオブジェクトをアップロードした。このときS3とKMSの間で実際に行われる処理として最も適切なものを選べ。(単一選択)

  1. AS3はオブジェクト本体をそのままKMSへ送信し、KMSがKMS キーでオブジェクト全体を直接暗号化して返す
  2. BS3はKMS キーに対し GenerateDataKey を呼び出して一意なデータキーを取得し、そのデータキーでオブジェクト本体を暗号化する。暗号化済みデータキーはオブジェクトのメタデータとして保存され、プレーンテキストのデータキーは使用後に破棄される
  3. Cクライアント側であらかじめデータキーを生成してオブジェクトを暗号化し、そのデータキーをKMSに預けて管理してもらう必要がある
  4. DKMS キーそのものがオブジェクトごとに複製され、各オブジェクトが専用のKMS キーで暗号化される
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BAI作成・AIで再検証済

解説

SSE-KMS はエンベロープ暗号化(envelope encryption)の仕組みで動く。KMSはデータそのものを暗号化しない (KMSの暗号化APIには扱えるデータサイズに上限があり、GB単位のオブジェクトを直接暗号化する用途には使わない)。

  • S3は、指定されたKMS キーに対して kms:GenerateDataKey を呼び出し、一意なデータキー(プレーンテキスト版+暗号化版のペア)を取得する。
  • プレーンテキストのデータキーでオブジェクト本体をS3側がAES-256で暗号化し、暗号化が終わったらプレーンテキストのデータキーはメモリから破棄する。
  • 暗号化されたデータキーはオブジェクトのメタデータとして一緒に保存される。
  • 復号時はメタデータ中の暗号化データキーをKMSの kms:Decrypt でKMS キーを使って復号し、得られたプレーンテキストのデータキーでオブジェクトを復号する。

この方式により、大きなオブジェクトでもKMSの呼び出し回数を抑えつつ(1オブジェクトにつきキー生成1回)、KMS キー自体はデータキーの保護のためだけに使われる。

各誤答が違う理由
  • AKMSの暗号化APIには扱えるデータ量の上限があり、オブジェクト本体を直接暗号化する用途には使われない。実際はデータキーだけをKMSが扱う。
  • Cそれはクライアント側暗号化(KMS暗号化SDK等)やSSE-Cの考え方。SSE-KMSはS3側が透過的にエンベロープ暗号化を行い、クライアントはデータキーを意識しない。
  • DKMS キーは複製されない。オブジェクトごとに生成・使い捨てされるのはデータキーであり、KMS キー自体はデータキーの暗号化/復号にのみ使われる。
ひっかけ: 「KMSがオブジェクト本体を直接暗号化している(A)」という誤解が典型的。KMSが暗号化するのはデータキーだけで、オブジェクト本体の暗号化はS3側がデータキーを使って行う。 また「クライアント側でデータキーを管理する必要がある(C)」はSSE-C/クライアント側暗号化との混同。SSE-KMSはS3が透過的にエンベロープ暗号化を行う。
AIが作成し、別の手順のAIで誤りを点検した解説です(有資格者による監修は経ていません)

この問題集の作り方

  1. 問題と解説はAIが作成しています。この資格の問題に、有資格者(著者)の監修は入っていません。
  2. 各問に、公式ドキュメントの出典リンクを付けています。書いてあることは、出典に当たって確かめられます。
  3. 誤答の選択肢それぞれに、なぜ誤りなのかの理由を書いています。
  4. 誤りを見つけたら報告できます。原則として無償で訂正・削除します。
  5. 各試験の運営団体とは無関係の非公式教材です。合格を保証するものではありません。
この分野をもっと解いて、得点源に
IAMとセキュリティ設計 を含む問題を分野別に演習できます。
演習する →