開発者が、Amazon S3に保存する大容量データファイル(最大100MB)をクライアントサイドで暗号化するアプリケーションを構築しています。AWS KMSを鍵管理に使用しつつ、API呼び出しコストを最小化したいと考えています。このユースケースに最も適したアプローチはどれですか?
KMS Encrypt APIは最大4KBのデータしか暗号化できないため、大容量データへの直接使用は不可。エンベロープ暗号化ではGenerateDataKeyでKMSキーに守られたDEKを生成し、DEKでローカル暗号化することでKMS API呼び出しを1回に抑えられます。 選択肢AのKMS Encrypt APIは大容量データに不対応です。 選択肢CのGenerateRandomは鍵管理をKMSに委任しないため不適切です。 選択肢DのSSE-KMSはクライアントサイドではなくサーバーサイド暗号化であり要件を満たしません。