SOAセキュリティとコンプライアンス
ある企業は EC2 上で稼働するアプリケーションのデータベース認証情報を平文の環境変数に保存しています。セキュリティチームは、認証情報を暗号化保存し、90 日ごとに自動ローテーションすること、ローテーション時にアプリケーションのダウンタイムを発生させないこと、運用負荷を最小化することを要件としています。最も適切な構成はどれですか。
AAWS Secrets Manager に認証情報を保存し、RDS 用のマネージドローテーション Lambda を有効化して 90 日のローテーションスケジュールを設定する
✓ 正解
Secrets Manager のマネージドローテーションは RDS 等向けに新旧シークレットをステージ管理しながら段階切替するため、90 日自動ローテーションをダウンタイムなしで実現でき、スケジュール設定のみで運用負荷も最小に抑えられる。
BSystems Manager Parameter Store の SecureString パラメータに認証情報を保存し、EventBridge スケジュールルールで 90 日ごとに Lambda を起動して値を更新する
SecureString は KMS 暗号化保存自体は可能だが、Secrets Manager のようなローテーション機構を内蔵しておらず、切替ロジックや冪等性を自前で実装する必要があり、運用負荷最小の要件を満たさない。
CAWS KMS で暗号化した認証情報を S3 バケットに保存し、バケットのライフサイクルルールで 90 日ごとに再暗号化する
S3 のライフサイクルルールはオブジェクトの削除やストレージクラス移行を行う機能であり、認証情報の値そのものを新しく生成してローテーションする能力はないため要件を満たせない。
DSecrets Manager に認証情報を保存し、CloudWatch アラームで 90 日経過を検知して手動ローテーションを実行する
Secrets Manager を使う点は妥当だが、手動ローテーションを前提とする時点で自動化およびダウンタイムなしの段階切替という要件を満たせず、運用負荷も増大する。
解説
AWS Secrets Manager は認証情報を KMS で暗号化保存し、自動ローテーションをネイティブにサポートします。RDS など対応データベースではマネージドローテーション用 Lambda テンプレートが提供され、新旧シークレットを段階的に切り替える(AWSCURRENT / AWSPENDING / AWSPREVIOUS のステージ管理)ため、アプリケーションは常に有効な認証情報を取得でき、ダウンタイムなしにローテーションが完了します。スケジュール設定だけで運用負荷も最小です。
選択肢Bの Parameter Store SecureString は暗号化保存は可能だが、ローテーション機構が組み込まれておらず、ローテーション用 Lambda の実装・冪等性・段階切り替えを自前で構築する必要があり運用負荷が高い。
選択肢Cの S3 + KMS はライフサイクルルールでオブジェクト削除や階層移動はできるが、認証情報の値を新しいものに「再生成・ローテーション」する機能は存在しない。
選択肢Dの手動ローテーションは自動化要件と運用負荷最小化要件を満たさない。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでSOAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →