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

ある開発者は、100MBを超える大容量ファイルをAmazon S3に保存する前にクライアント側で暗号化する必要があります。AWS KMS API(aws kms encrypt)を直接使用してファイルを暗号化しようとしたところ、ファイルサイズ制限に関するエラーが発生しました。この問題を解決するための最も適切な方法はどれですか?

A
ファイルを4KBのチャンクに分割し、各チャンクをKMS Encrypt APIで個別に暗号化してからS3に保存する
不正解です。ファイルを4KBのチャンクに分割して各チャンクをKMS Encrypt APIで暗号化する場合、100MBのファイルでは約25,600回のAPIコール(100MB÷4KB)が必要になります。API呼び出しコストが莫大になり、レイテンシも大幅に増大するため実用的ではありません。
B
KMS GenerateDataKey APIでデータキーペアを取得し、平文キーでファイルを暗号化後に廃棄し、暗号化ファイルと暗号化済みキーをS3に保存する
✓ 正解
正解です。KMSのEncrypt APIは最大4KBまでのデータしか直接暗号化できません。大容量データにはエンベロープ暗号化を使用します。GenerateDataKey APIで平文データキーと暗号化済みデータキーのペアを取得し、平文データキーでファイルをローカルで対称暗号化します。平文データキーは使用後すぐ破棄し、暗号化済みデータキーをファイルと共に保存します。
C
KMS GenerateDataKeyWithoutPlaintext APIのみを使用してデータキーを生成し、そのキーのみでファイルを直接暗号化する
不正解です。GenerateDataKeyWithoutPlaintextは平文キーを返さないため、単独ではファイルを暗号化できません。返されるのは暗号化済みデータキーのみであり、これだけではクライアント側でのファイル暗号化に使用することができません。
D
CloudHSM(Hardware Security Module:ハードウェアセキュリティモジュール)クラスターを作成し、KMSの4KB制限を回避してファイルを暗号化する
不正解です。CloudHSMは専用のハードウェアセキュリティモジュールを管理するサービスですが、KMSの4KB制限を自動的に回避する機能は持ちません。導入・運用コストも大幅に増加するため、この問題の最適な解決策ではありません。

解説

KMSのEncrypt APIは最大4KBまでのデータしか直接暗号化できません。大容量データにはエンベロープ暗号化を使用します。GenerateDataKey APIで平文データキーと暗号化済みデータキーのペアを取得し、平文データキーでファイルをローカル暗号化します。平文データキーは使用後すぐ破棄し、暗号化済みデータキーをファイルと共に保存します。復号時はKMS Decrypt APIで暗号化済みデータキーを復号してからファイルを復号します。 選択肢Aのファイルを4KBチャンクに分割してKMS Encrypt APIを繰り返す方法は、100MBのファイルで約25,600回のAPIコールが必要となりコストとレイテンシが著しく増大するため実用的ではありません。 選択肢CのGenerateDataKeyWithoutPlaintextは平文キーを返さないため単独ではファイルを暗号化できません。 選択肢DのCloudHSMは専用のハードウェアセキュリティモジュールを管理するサービスであり、KMSの4KB制限を自動的に回避する機能は持たず、導入・運用コストも大幅に増加するため適切ではありません。

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

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

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