ある企業が RDS for PostgreSQL を使用した Web アプリケーションを運用しています。データベースのパスワードと外部 API キーがアプリケーションの設定ファイルにハードコードされており、セキュリティ監査で指摘を受けました。以下の要件をすべて満たすソリューションを設計する必要があります。 ①シークレット(機密情報)を暗号化して安全に保存する ②データベースパスワードを定期的に自動ローテーション(更新)する ③アプリケーションコードの変更なしにローテーションが完了する ④シークレットへのすべてのアクセスが監査ログに記録される 最も要件を満たすソリューションはどれですか?
AWS Secrets Manager は RDS・Redshift・DocumentDB に対する組み込みの自動ローテーション機能(Lambda 関数による二段階ローテーション)を提供し、ローテーション中もアプリケーションは同じシークレット名で最新の認証情報を取得できるためコード変更が不要です。CloudTrail との統合で監査ログも自動記録されます。 選択肢Aは、EC2 インスタンスの環境変数にシークレットを設定し、ローテーション時に Auto Scaling グループのインスタンスを再起動してリフレッシュする方法はアプリケーションコードの変更を伴うため要件を満たしません。 選択肢Cは、AWS Systems Manager Parameter Store の SecureString パラメータはデータベースパスワードの自動ローテーション機能を持たず要件を満たせません。 選択肢Dは、S3 バケットにシークレットを保存する方法はシークレット管理用に設計されておらず不適切です。