SSL 接続を必要とする DB 接続のための AWS Secrets Manager シークレットをローテーションするにはどうすればよいですか?
最終更新日: 2022 年 4 月 11 日
AWS Secrets Manager のローテーション機能が、Secure Socket Layer (SSL) を使用して Amazon Relational Database Service (Amazon RDS) インスタンスに接続することができません。以下のようなエラーが表示されます。
": setSecret: Unable to log into database with previous, current, or pending secret of secret"
解決方法
Amazon RDS (Oracle 用 Amazon RDS を除く) および Amazon DocumentDB のローテーション機能は、SSL/TLS が利用可能であれば、自動的に SSL/TLS を使用してデータベースに接続します。SSL または TLS が使用できない場合、ローテーション機能は暗号化されていない接続を使用します。
2021 年 12 月 20 日より前にシークレットローテーションを設定した場合、ローテーション機能が SSL/TLS をサポートしていない古いテンプレートに基づいている可能性があります。SSL/TLS を使用する接続をサポートするには、ローテーション関数を再作成する必要があります。詳細については、「データベースには SSL/TLS 接続が必要だが、AWS Lambda ローテーション機能が SSL/TLS を使用していない」を参照してください。
DB ユーザーのデータベースへの接続を確認して、シークレットを取得します。
1. Amazon RDS インスタンスに接続するには、「Amazon RDS DB インスタンスへの接続」を参照してください。
2. Amazon DocumentDB に接続するには、「Amazon DocumentDB を使用した開発」を参照してください。
3. シークレットを取得するには、「AWS Secrets Manager からコードでシークレットを取得する」を参照してください。
4. シークレットを自動的にローテーションするには、「Amazon RDS、Amazon DocumentDB、または Amazon Redshift シークレットを自動的にローテーションする」を参照してください。