SAAセキュアなアーキテクチャの設計
企業のWebアプリケーションがAmazon ECS Fargate上で動作しており、Amazon RDS Aurora MySQLクラスターへの接続にデータベース認証情報を使用しています。現在、パスワードはECSタスク定義の環境変数にプレーンテキストで格納されており、セキュリティ監査で重大な脆弱性として指摘されました。コンプライアンス要件として、
(1) 認証情報は安全なストレージに保存すること
(2) データベースパスワードは90日ごとに自動ローテーションすること
(3) アプリケーションコードの変更は最小限に抑えること
が求められています。これらの要件を満たす最もセキュアなソリューションはどれですか?
A認証情報をAWS Systems Manager Parameter StoreのSecureStringパラメータとして保存し、ECSタスク定義のSecretsセクションから参照するよう更新する。90日ごとのローテーションはAWS Lambdaで自動化する
Parameter StoreはRDSの自動ローテーションを標準サポートせずLambda実装が必要です。
BAWS Secrets Managerに認証情報を保存してRDS Auroraとのネイティブ統合による自動ローテーションを設定し、ECSタスクIAMロールにアクセス権限を付与し、ECSタスク定義のSecretsセクションで環境変数として注入する
✓ 正解
Secrets ManagerはRDS Auroraとのネイティブ統合で追加実装なしに自動ローテーションが可能です。ECSタスク定義のSecretsセクションを使うことで、アプリケーションコード変更なしにシークレットを環境変数として安全に注入できます。
C認証情報をAWS KMSで暗号化してAmazon S3バケットに保存し、厳格なバケットポリシーを設定してアプリケーション起動時に取得するLambda関数を実装する
S3バケット保存はパスワード変更時の更新手順が複雑で、自動ローテーションが困難です。
DRDS AuroraのIAMデータベース認証を有効化し、ECSタスクIAMロールにrds-db:connectを許可してアプリケーションがAWS SDKで認証トークンを動的生成するよう改修する
IAMデータベース認証は最もセキュアですがアプリコードの大幅改修が必要で要件(3)に反します。
解説
Secrets ManagerはRDS Auroraとのネイティブ統合で追加実装なしに自動ローテーションが可能です。ECSタスク定義のSecretsセクションを使うことで、アプリケーションコード変更なしにシークレットを環境変数として安全に注入できます。
選択肢AのParameter StoreはRDSの自動ローテーションを標準サポートせずLambda実装が必要です。
選択肢CのS3バケット保存はパスワード変更時の更新手順が複雑で、自動ローテーションが困難です。
選択肢DのIAMデータベース認証は最もセキュアですがアプリコードの大幅改修が必要で要件(3)に反します。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでSAAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →