開発者は、500MBのファイルをS3にアップロードする前にクライアント側で暗号化する必要があります。AWS KMSのEncrypt APIを直接使用しようとしたところ、4KBのサイズ制限があることがわかりました。大容量ファイルを安全に暗号化するために、開発者が採用すべき正しいアプローチはどれですか?
エンベロープ暗号化(Envelope Encryption)では、KMS GenerateDataKey APIを呼び出してデータキーのプレーンテキスト版と暗号化版の両方を取得します。プレーンテキストキーでファイルをローカル暗号化した後、メモリからプレーンテキストキーを削除し、暗号化済みファイルと暗号化済みデータキーをS3に保存します。 選択肢A(4KBチャンク分割):KMS Encrypt APIは4KBまでのデータに直接使用するものであり大容量ファイルには適しません。 選択肢C(GenerateDataKeyWithoutPlaintext):暗号化済みキーのみを返すためローカル暗号化には使用できません。 選択肢D(SSE-KMS):サーバー側暗号化であり、データがS3に届いた後にAWS側で暗号化されるため、クライアント側での暗号化という本問の要件を満たしません。