DVAセキュリティ
開発者はAWS KMSを使用して、アプリケーション内で処理される500MBの動画ファイルを暗号化する必要があります。KMSの仕様上、直接暗号化できるデータサイズは最大4KBに制限されています。この大きな動画ファイルをAWS KMSの仕組みを利用して安全に暗号化するための正しいアプローチはどれですか。
AKMSの GenerateDataKey APIを呼び出してデータキー(プレーンテキストと暗号化されたキー)を取得し、プレーンテキストのキーで動画ファイルをローカル暗号化する。
✓ 正解
エンベロープ暗号化の正しい手順です。GenerateDataKeyで取得したプレーンテキストキーを使って大きなファイルを暗号化し、暗号化されたデータキーを保存します。
BKMSの Encrypt APIをループ処理で呼び出し、動画ファイルを4KBずつのチャンクに分割して順番に暗号化する。
4KBずつに分割してKMS APIを大量に呼び出す方法は、KMSのAPIスロットリング制限に抵触しやすく、著しい遅延とコスト増を招くアンチパターンです。
C動画ファイルをAmazon S3にアップロードし、KMSの GenerateRandom APIを使用してS3バケットのデフォルト暗号化を無効化する。
GenerateRandomは暗号学的に安全な乱数を生成するAPIであり、S3の暗号化設定を変更する機能ではありません。
DS3マルチパートアップロードを使用し、各パートを直接KMSのカスタマーマネージドキーにリンクさせてアップロードする。
マルチパートアップロード自体はS3の機能ですが、KMSキーへ直接リンクさせるような仕組みはなく、アプリケーション側での暗号化要件を満たしません。
解説
KMSの `Encrypt` APIで直接暗号化できるデータサイズは4KBまでです。それ以上の大きなデータ(ファイル、画像、動画など)を暗号化する場合は、「エンベロープ暗号化」を使用します。具体的には、KMSの `GenerateDataKey` APIを呼び出して「データキー(プレーンテキスト版とKMSで暗号化された版)」を取得し、アプリケーションはプレーンテキストのデータキーを使って巨大なファイル自体を暗号化(ローカル処理)します。その後、暗号化済みのデータキーをファイルと一緒に保存し、プレーンテキストキーはメモリから破棄します。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →