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

あるチームが100MB以上の大きなファイルをAmazon S3に暗号化して保存する必要があります。AWS KMSを使用してキー管理を行い、パフォーマンスとセキュリティを両立させたい場合、最も適切な実装はどれですか?

A
AWS KMS APIのEncryptオペレーションを直接使用してファイル全体を暗号化し、S3にアップロードする(KMS Encryptは仕様上最大4KBのペイロードしか処理できないため、100MB超のファイルへの直接適用は不可能)
KMS APIのEncrypt オペレーションを直接使用してファイル全体を暗号化することは、4KBの上限により大きなファイルに対応できません。
B
エンベロープ暗号化(Envelope Encryption)を使用する:KMSのGenerateDataKeyでデータキー(DEK: Data Encryption Key)を生成し、DEKでファイルを暗号化する。暗号化済みDEKと暗号化済みファイルをS3に保存し、平文DEKはメモリから破棄する
✓ 正解
AWS KMSのEncrypt APIは最大4KBのデータしか処理できないため、大きなファイルの直接暗号化には使用できません。エンベロープ暗号化ではGenerateDataKeyを呼び出してDEK(データ暗号化キー)の平文と暗号化版を取得し、平文DEKでデータを暗号化します。暗号化後は平文DEKをメモリから削除し、暗号化済みDEKをデータと共に保存します。復号時はKMSでDEKを復号してからデータを復号します。これによりKMSキー(カスタマーマネージドキー)で鍵管理しつつ大容量データを効率的に扱えます。
C
S3サーバーサイド暗号化(SSE-S3)のみを使用し、KMSは利用しない(AWSが管理するキーによるサーバーサイド暗号化のため、カスタマーマネージドキーによるアクセス制御やCloudTrailでのKMS操作監査ログを活用できない)
S3サーバーサイド暗号化(SSE-S3)のみの使用はAWSが管理するキーによるサーバーサイド暗号化であり、KMSによるキー管理・アクセス制御の要件を満たしません。
D
クライアントサイドでAES-128によりファイルを暗号化してS3にアップロードし、その鍵をKMSに平文で保存する(AES-256より鍵長が短くセキュリティ強度が低く、KMSはプレーンテキストキーを永続保存する用途には設計されていない)
AES-128によりクライアント側で暗号化し、その鍵をKMSに平文で保存することは、AES-128がAES-256より鍵長が短くセキュリティ強度が低く、また平文キーをKMSに保存することはKMSの鍵保護モデルに反します。

解説

AWS KMSのEncrypt APIは最大4KBのデータしか処理できないため、大きなファイルの直接暗号化には使用できません。エンベロープ暗号化ではGenerateDataKeyを呼び出してDEK(データ暗号化キー)の平文と暗号化版を取得し、平文DEKでデータを暗号化します。暗号化後は平文DEKをメモリから削除し、暗号化済みDEKをデータと共に保存します。復号時はKMSでDEKを復号してからデータを復号します。これによりKMSキー(カスタマーマネージドキー)で鍵管理しつつ大容量データを効率的に扱えます。 選択肢AのKMS APIのEncrypt オペレーションを直接使用してファイル全体を暗号化することは、4KBの上限により大きなファイルに対応できません。 選択肢CのS3サーバーサイド暗号化(SSE-S3)のみの使用はAWSが管理するキーによるサーバーサイド暗号化であり、KMSによるキー管理・アクセス制御の要件を満たしません。 選択肢DのAES-128によりクライアント側で暗号化し、その鍵をKMSに平文で保存することは、AES-128がAES-256より鍵長が短くセキュリティ強度が低く、また平文キーをKMSに保存することはKMSの鍵保護モデルに反します。

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

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

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