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キーへ直接リンクさせるような仕組みはなく、アプリケーション側での暗号化要件を満たすものではありません。
解説
AWS KMSの `Encrypt` APIで直接暗号化できるデータサイズは最大4KBまでです。それ以上の大きなファイルや動画を暗号化する場合は、「エンベロープ暗号化(Envelope Encryption)」を使用します。具体的には、KMSの `GenerateDataKey` APIを呼び出して「データキー(プレーンテキスト版とKMSで暗号化された版のペア)」を取得し、アプリケーションはプレーンテキストのデータキーを使って巨大なファイル自体をローカルで暗号化します。その後、暗号化済みのデータキーをファイルと一緒に保存し、プレーンテキストのキーはメモリから即座に破棄します。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →