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 シークレットを自動的にローテーションする」を参照してください。