DVAセキュリティ
アプリケーションがAWS Secrets ManagerからRDSの認証情報を取得しています。30日ごとの自動ローテーションが設定されており、アプリケーションは常に最新の認証情報を使用しつつ、Secrets Managerへの呼び出し回数を最小化する必要があります。最善策はどれですか?
A毎回のDB接続前にGetSecretValue APIを呼び出して最新の認証情報を取得する
毎接続でGetSecretValue APIを呼び出すため不要なAPIコストとレイテンシーが発生します。
BLambda環境変数に認証情報をキャッシュし、ローテーションのたびにLambdaを再デプロイする
ローテーションのたびに手動再デプロイが必要となり、自動ローテーションの利点が失われます。
CAWS提供のSecrets Manager SDKキャッシュライブラリ(aws-secretsmanager-caching)を使用し、TTL(Time To Live:キャッシュの有効期限)を設定してメモリにキャッシュする
✓ 正解
AWSが提供するキャッシュライブラリはシークレットをメモリにキャッシュしTTL経過後に自動再取得するため、APIコール数を最小化しつつローテーション後の新認証情報を反映できます。
Dアプリケーション起動時に1回だけ取得してメモリにキャッシュし、再起動時のみ更新する
起動時のメモリキャッシュはあるものの自動更新機能がないため、30日ローテーション後も古い認証情報を使い続けるリスクがあります。
解説
AWSはSecrets Manager専用のクライアントサイドキャッシュライブラリ(aws-secretsmanager-caching)を提供しています。このライブラリはシークレットをメモリにキャッシュし、設定したTTL経過後に自動再取得します。APIコール数を削減してコストとレイテンシーを最小化しながら、ローテーション後の新しい認証情報を自動的に反映できます。
選択肢Aは毎接続でAPIを呼ぶため不要なコストが発生します。
選択肢Bはローテーションのたびに再デプロイが必要で自動ローテーションの利点が失われます。
選択肢Dは起動時に1回取得するだけでTTLベースの自動更新がないため、30日ローテーション後も古い認証情報を使い続けるリスクがあります。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →