SAAセキュアなアーキテクチャの設計
ある製造業の会社は、Auto Scalingグループ内のEC2インスタンス上で動作するアプリケーションからAmazon RDS MySQLデータベースに接続しています。現在、データベース認証情報はEC2のユーザーデータスクリプトにハードコードされています。セキュリティチームは以下を要求しています:
(1) 認証情報を30日ごとに自動ローテーションすること
(2) ローテーション後もアプリケーションの再起動なしに新しい認証情報が使用されること
(3) 認証情報へのアクセスはIAMポリシーで制御すること
最小の運用負荷でこれらの要件を満たすソリューションはどれですか?
AAWS Systems Manager Parameter StoreにSecureString型で認証情報を保存し、EC2インスタンス上のcronジョブで1時間ごとに最新の値を取得してローカルファイルに書き込む
cronジョブによるカスタム実装で運用負荷が高く、継続的な監視・メンテナンスが必要です。
BAWS Secrets Managerを使用してRDSネイティブ統合による自動ローテーションを設定し、EC2インスタンスにIAMロールを付与してアプリケーションが接続のたびにSecrets Manager APIを呼び出して認証情報を取得する
✓ 正解
AWS Secrets ManagerはRDS向けのネイティブローテーション機能を持ち、Lambdaを自動プロビジョニングして30日ごとにパスワードを更新します。アプリケーションが接続時にAPIを呼び出すことで再起動不要で最新の認証情報を常に使用できます。IAMロールによりハードコードされたアクセスキーを排除し最小権限を実現します。
C認証情報をAWS KMSで暗号化してS3バケットに保存し、EC2インスタンスの起動時にIAMロールを使用してS3から取得する起動スクリプトを設定する
起動時のみ取得のためローテーション後の反映に遅延が生じ、更新後のアプリケーション動作に問題が生じる可能性があります。
DEC2起動テンプレートの環境変数に認証情報を設定し、ローテーション時に新しいテンプレートバージョンを作成してAuto Scalingグループのインスタンスを順次入れ替える
インスタンス入れ替えが必要でダウンタイムリスクがあり、サービス可用性に影響します。
解説
AWS Secrets Managerを使用したRDSネイティブ統合による自動ローテーションが、要件を最小運用負荷で満たす最適なソリューションです。
選択肢Aは、cronジョブによるカスタム実装で運用負荷が高く、継続的な監視・メンテナンスが必要です。
選択肢Bは、RDSネイティブローテーション機能によりLambdaを自動プロビジョニングして30日ごとにパスワードを更新します。アプリケーションが接続時にAPIを呼び出すことで再起動不要で最新の認証情報を常に使用でき、IAMロールによりハードコードされたアクセスキーを排除し最小権限を実現します。
選択肢Cは、起動時のみ認証情報を取得するため、ローテーション後に反映が遅延しアプリケーション動作に問題が生じる可能性があります。
選択肢Dは、ローテーション時にインスタンス入れ替えが必要でダウンタイムリスクがあり、サービス可用性に影響します。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでSAAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →