無限ノック › DVA 練習問題一覧 › 問題
DVAセキュリティ

開発者が Lambda 関数から 10MB のファイルを暗号化して S3 に保存する処理を実装している。社内ポリシーでは AWS KMS を用いた暗号化が必須とされている。KMS の API 制限と処理効率を考慮した場合、最も適切な実装はどれか。

A
KMS の Encrypt API を使い、CMK(Customer Master Key / 顧客管理キー)でファイル全体を直接暗号化する。暗号化されたデータをそのまま S3 バケットにアップロードして保存する。
KMS の Encrypt API は最大 4KB のデータしか直接暗号化できないため、10MB のファイルには使用できません。大容量データには GenerateDataKey を使ったエンベロープ暗号化が必要です。
B
KMS の GenerateDataKey API でデータキーを取得し、そのデータキーでファイルをローカル暗号化する。暗号化済みデータキーとファイルをセットで S3 に保存する(エンベロープ暗号化)
✓ 正解
エンベロープ暗号化の推奨実装パターンです。GenerateDataKey で平文データキーと暗号化済みデータキーを取得し、平文データキーでローカル暗号化後に平文キーをメモリから破棄します。KMS API 呼び出しを最小限に抑えながら大容量データを効率的かつ安全に処理できます。
C
S3 のサーバーサイド暗号化(SSE-S3)を利用してファイルを保存する。この方法では KMS を使用せず、AWS が管理する暗号化キーが自動的に適用される。
SSE-S3 は AWS が管理する暗号化キーを使用するため、KMS を用いた暗号化を必須とする社内ポリシーを満たしません。KMS を使用するには SSE-KMS を選択する必要があります。
D
KMS の GenerateDataKeyPair API で非対称の RSA キーペアを生成し、RSA 公開鍵を使ってファイルを暗号化して S3 にアップロードして保存する。
GenerateDataKeyPair は非対称の RSA キーペアを生成するもので、対称キーによるエンベロープ暗号化とは用途が異なります。大容量ファイルを RSA 公開鍵で直接暗号化することは非効率であり、KMS の推奨パターンでもありません。

解説

KMS の Encrypt API は最大 4KB のデータしか直接暗号化できないため、10MB のファイルには使用不可。エンベロープ暗号化(Envelope Encryption)では GenerateDataKey で平文データキーと暗号化済みデータキーを取得し、平文データキーでローカル暗号化後に平文キーをメモリから破棄する。暗号化済みデータキーと暗号文をセットで保管するのが AWS 推奨パターン。 選択肢AのEncrypt APIは、最大 4KB のデータしか直接暗号化できないため、10MB のファイルには使用不可である。 選択肢Cのサーバーサイド暗号化(SSE-S3)は、KMS を使用しないため、社内ポリシー要件を満たさない。 選択肢DのGenerateDataKeyPair APIは、RSA キーペアを生成するものであり、対称キーでのエンベロープ暗号化とは異なる。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DVA の問題一覧に戻る