あるLambda関数が、10MBの設定ファイルをAWS KMSを使って暗号化してS3に保存する必要があります。KMSの制約(1リクエストあたり最大4KBのデータを直接暗号化)を考慮した場合、最も適切な実装はどれですか?
KMSが直接暗号化できるデータは4KBまでです。大きなデータには「エンベロープ暗号化」を使います。GenerateDataKey APIを呼ぶとKMSキーで保護された平文データキーと暗号化済みデータキーの2つが返されます。平文キーでデータをローカル暗号化後、平文キーをメモリから削除し、暗号化済みデータキーとデータを一緒に保存します。復号時はKMSへのアクセスが1回で済むため効率的です。 選択肢AのKMS Encrypt APIを直接呼び出す方法は、10MBのファイルが4KB上限を超えるため直接暗号化できません。 選択肢CのファイルをKMSで個別に暗号化する方法はKMS API呼び出し回数がファイルサイズに比例して膨大になり、コスト増大・スロットリングのリスクがあります。 選択肢DのS3のSSE-S3を使用する方法はKMSではなくS3マネージドキーを使うため、KMSによる暗号化という要件を満たしません。