無限ノック › DVA 練習問題一覧 › 問題
DVAセキュリティ

本番環境の Lambda 関数が RDS MySQL データベースに接続しています。現在、データベースのパスワードは Lambda の環境変数にハードコードされています。セキュリティチームから「パスワードを定期的に自動ローテーションし、Lambda コードを再デプロイせずに常に最新のパスワードを使用できる仕組みを導入してほしい」という要件が出ました。最も適切な解決策はどれですか?

A
Lambda の環境変数として保存されたパスワードを、EventBridge スケジュールと更新用 Lambda 関数を使って定期的に自動更新する
EventBridge スケジュールと Lambda 関数で環境変数を定期更新する方法は、ローテーションロジックを自前で実装・維持する必要があり、環境変数の更新が Lambda 設定変更を伴うため管理コストが高くなります。
B
AWS Secrets Manager にパスワードを保存して RDS 用の自動ローテーションを有効化し、Lambda が実行時に Secrets Manager からシークレットを取得する構成に変更する
✓ 正解
Secrets Manager は RDS MySQL 向けのローテーション Lambda テンプレートを内蔵し、AWSPENDING → AWSCURRENT フェーズ管理で無停止ローテーションを実現します。Lambda が実行時にシークレットを取得する構成にすることで、再デプロイ不要で最新パスワードが自動反映されます。
C
AWS SSM パラメータストアの SecureString タイプにパスワードを保存し、Lambda の IAM ロールに ssm:GetParameter 権限を付与して実行時に取得する
SSM パラメータストアは SecureString による暗号化保存が可能ですが、パスワードの自動ローテーション機能を持たないため手動管理が必要となり、定期的な自動ローテーションという要件を満たせません。
D
パスワードを AWS KMS カスタマーマネージドキーで暗号化して S3 バケットに保存し、Lambda 起動時に S3 から取得して復号して利用する
KMS 暗号化 + S3 保存は認証情報管理専用のサービスではなく、ローテーションロジックや監査証跡の仕組みをすべて自前で構築する必要があるため、Secrets Manager と比較して運用負荷が大きく最適ではありません。

解説

AWS Secrets Manager はデータベース認証情報の自動ローテーションを組み込みでサポートしており、RDS MySQL 用のローテーション Lambda 関数テンプレートが用意されています。ローテーション時に AWSPENDING→AWSCURRENT のフェーズ管理で無停止でパスワードを切り替えます。Lambda の実行時取得に変更することで再デプロイ不要で最新パスワードが自動反映されます。 選択肢AのEventBridge と Lambda で Lambda 環境変数を定期更新する方法は、環境変数の変更は Lambda の再起動を伴い、またローテーション機能を自前で実装・維持する必要があるため管理コストが高くなります。 選択肢CのSSMパラメータストアは、暗号化保存はできますが自動ローテーション機能がなく手動管理が必要です。 選択肢DのKMS+S3方式は、認証情報管理専用のサービスではなく、ローテーションや監査証跡の仕組みを自前で構築する必要があり最適ではありません。

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

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

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