無限ノック › SOA 練習問題一覧 › 問題
SOAセキュリティとコンプライアンス

ある企業のアプリケーションは、EC2 インスタンスの環境変数に Amazon RDS for MySQL の接続パスワードをハードコードして使用しています。セキュリティ監査の結果、データベース認証情報を一元管理し、90日ごとに自動ローテーションさせることが義務付けられました。アプリケーションのダウンタイムを発生させず、最小の運用変更で要件を満たす方法はどれですか?

A
AWS Systems Manager Parameter Store(SecureString)に認証情報を格納し、EC2 ユーザーデータで起動時に Parameter Store から取得するよう変更する
SSM Parameter Store の SecureString は認証情報を安全に保存できるが、自動ローテーション機能をネイティブで持たないため、90日ごとの自動更新には別途 Lambda 関数や EventBridge スケジュールの開発・運用が必要になる。
B
AWS Secrets Manager に認証情報を登録し、RDS 向けローテーション関数を設定して、アプリケーションが Secrets Manager API から認証情報を動的取得するよう変更する
✓ 正解
AWS Secrets Manager は RDS 向けのマネージドローテーション関数を標準提供しており、旧認証情報と新認証情報の並行運用によるゼロダウンタイムローテーションが設定のみで実現できる。一元管理・自動ローテーション・アプリへの透過的な提供をすべて満たす。
C
IAM データベース認証を有効化し、EC2 インスタンスプロファイルから一時トークンを取得して RDS に接続するようアプリケーションを変更する
IAM データベース認証はパスワードを使用しない認証方式でローテーション不要という利点があるが、RDS のパラメータグループ変更・IAM ロール付与・接続ライブラリ更新など変更箇所が多く、Secrets Manager より運用変更コストが大きくなる。
D
Amazon RDS の自動バックアップ機能を使いスナップショットを90日ごとに作成し、パスワードリセット後に接続先を切り替えるよう変更する
RDS の自動バックアップはポイントインタイムリカバリのためのスナップショット機能であり、認証情報の管理・ローテーションとは無関係。パスワードリセット後の接続先切り替えにはダウンタイムが伴い要件を満たさない。

解説

AWS Secrets Manager はデータベース認証情報などのシークレットを一元管理し、定期的な自動ローテーションをネイティブでサポートするサービスです。RDS for MySQL 向けにはマネージドローテーション関数を設定するだけで、旧認証情報と新認証情報を並行して有効にしながらパスワードを切り替えるゼロダウンタイムローテーションが実現できます。アプリケーションが Secrets Manager API(GetSecretValue)から認証情報を取得するよう変更することで、ローテーション後の新しいパスワードを自動的に使用できます。 選択肢AのSSM Parameter Storeは認証情報の安全な保存(SecureString)はできるが、自動ローテーション機能がネイティブには存在せず、90日ごとのローテーションを実現するには別途 Lambda や EventBridge スケジュールの構築が必要になる。 選択肢CのIAMデータベース認証はパスワード不要で認証情報のローテーション自体が不要になるが、RDS パラメータグループの変更・IAM ポリシー設定・接続ライブラリの変更など改修範囲が Secrets Manager より大きくなる。 選択肢DのAmazon RDS 自動バックアップはポイントインタイムリカバリのためのスナップショット機能であり、認証情報の自動ローテーション管理とは無関係。接続先の切り替え時にダウンタイムも発生する。

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

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

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