DOPセキュリティとコンプライアンス

アプリケーションのシークレット(データベースパスワード等)をLambda関数で安全に取得するベストプラクティスはどれですか?

A
シークレットをLambdaの環境変数にプレーンテキストで設定する
プレーンテキストでLambda環境変数に設定した場合、Lambdaコンソール上に値が平文で表示されるリスクがあり、自動ローテーションにも対応できません。
B
Secrets Managerからランタイムで取得しキャッシュする
✓ 正解
Secrets Managerからランタイムで取得することでシークレットのローテーションに対応でき、コードやバージョン管理システムにシークレットが漏洩しません。毎回APIを呼び出すとコストと遅延が増加するため、Lambda Powertools Parameters moduleのキャッシュ機能(デフォルト5分TTL)でパフォーマンスとセキュリティを両立します。
C
シークレットをソースコードにハードコードしてデプロイする
ソースコードへのハードコードはGit等のバージョン管理システムへの漏洩リスクが極めて高く最も危険な方法です。
D
S3バケットのテキストファイルからシークレットを読み取る
S3テキストファイルからの読み取りは自動ローテーション機能がなく、バケットポリシーの設定ミスによる漏洩リスクもあるため不適切です。

解説

Secrets Managerからランタイムで取得することでシークレットのローテーションに対応でき、コードやバージョン管理システムにシークレットが漏洩しません。毎回APIを呼び出すとコストと遅延が増加するため、Lambda Powertools Parameters moduleのキャッシュ機能(デフォルト5分TTL)でパフォーマンスとセキュリティを両立します。 選択肢AのプレーンテキストでLambda環境変数に設定した場合、Lambdaコンソール上に値が平文で表示されるリスクがあり、自動ローテーションにも対応できません。 選択肢CのソースコードへのハードコードはGit等のバージョン管理システムへの漏洩リスクが極めて高く最も危険な方法です。 選択肢DS3テキストファイルからの読み取りは自動ローテーション機能がなく、バケットポリシーの設定ミスによる漏洩リスクもあるため不適切です。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDOPを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
DOP の問題一覧に戻る