Lambda関数がAmazon RDSデータベースに接続するための認証情報を管理する必要があります。セキュリティ監査の結果、以下の要件が定められました。 ①認証情報は30日ごとに自動的にローテーションされること、 ②認証情報へのすべてのアクセスはAPI呼び出しレベルで監査ログに記録されること、 ③ローテーション中もアプリケーションのダウンタイムがないこと。この3つの要件をすべて満たすソリューションはどれですか?
Secrets Managerは自動ローテーション機能をネイティブに提供し、RDS/Aurora向けのローテーションLambda(ダブルバッファ方式)が用意されているためローテーション中のダウンタイムがありません。GetSecretValue API呼び出しはCloudTrailに自動記録され、3つの要件をすべて満たします。 選択肢AのAWS Systems Manager Parameter StoreはKMS暗号化(SecureString)は可能ですが、自動ローテーション機能がなくカスタムLambdaを手動実装する必要があり、30日ごとの自動ローテーション要件を完全には満たしません。 選択肢BのAWS Secrets ManagerはRDS統合の自動ローテーション(ダブルバッファ方式でローテーション中もダウンタイムなし)、CloudTrailへのGetSecretValue呼び出しの自動記録による監査要件、無停止切り替えという3要件をすべて満たす最適解です。 選択肢CのLambda環境変数はKMS暗号化が可能ですが、認証情報を変更するには関数の再デプロイが必要なため自動ローテーションができず要件①を満たしません。 選択肢DのS3バケットへの認証情報ファイル保存はマネージドなシークレット管理機能がなく、セキュリティのベストプラクティスに反します。