DVA-C02セキュリティMEDIUM単一選択

ある開発チームは Lambda 関数から Secrets Manager のシークレットを取得するコードを実装しています。本番環境ではシークレット取得のたびに API コールが発生しパフォーマンスとコストに影響が出ています。コードの大幅な変更を避けつつ、Secrets Manager 呼び出しの頻度を最小化する最も推奨される方法はどれですか?

  1. A. DynamoDB にシークレット値を複製してキャッシュし、Lambda はまず DynamoDB を参照するよう実装する
  2. B. Lambda 関数の環境変数にシークレット値をキャッシュし、コールドスタート時のみ Secrets Manager を呼び出す
  3. C. シークレットの TTL を無効化して永続的なキャッシュとして Lambda のメモリに保持する
  4. D. AWS Secrets Manager の Lambda 拡張機能(AWS Parameters and Secrets Lambda Extension)を使用してローカルキャッシュを有効にする
解答と解説を見る

正解: D

AWS Parameters and Secrets Lambda Extension(AWS Lambda 拡張機能)は Lambda 関数の実行環境上でローカル HTTP サーバーとして動作し、Secrets Manager および Parameter Store の値をキャッシュします。Lambda コードはローカルエンドポイント(localhost:2773)に HTTP GET するだけでキャッシュ済みの値を取得できるため、Secrets Manager への実際の API コールを大幅に削減できます。コードの変更も最小限です。B の環境変数キャッシュはコールドスタート時にシークレットが取得されますが、ローテーション後の値が反映されないリスクがあり、セキュリティ上問題があります。A の DynamoDB 複製は管理が複雑でコストも増加し、シークレットの同期ロジックが別途必要です。C の永続キャッシュはローテーション後のシークレット更新が反映されず、セキュリティ上許容できません。

▸ この試験を本気で演習する(全150問・無料)