あなたはLambda関数を使って大量のログデータ(1メッセージあたり数MB)をS3に暗号化して保存するシステムを開発しています。AWS KMSを使用する要件がありますが、Lambda関数からKMSに直接暗号化リクエストを送ると、スループット制限(APIリクエストクォータ)に達してしまいます。このパフォーマンス問題を解決するために最も適切なアプローチはどれですか?
正解: AWS Encryption SDKのデータキーキャッシング機能を使用し、GenerateDataKey APIで取得したデータキーを一定時間ローカルにキャッシュして暗号化に使用する。 KMSのエンベロープ暗号化では、GenerateDataKey APIでデータキーを生成しそのキーでデータを暗号化します。AWS Encryption SDKのデータキーキャッシングを使うと、生成したデータキーをローカルに一定時間・一定回数キャッシュでき、KMS APIコール数を大幅に削減できます。 選択肢Aは、クォータ引き上げは根本解決にはなりません。 選択肢Cは、SSE-S3はKMS要件を満たしません。 選択肢Dは、ハードコードはセキュリティ違反です。