CloudFormation で RDS のパスワードを変更したが反映されないときの対処方法

2021.12.21

困っていた内容

CloudFormation のテンプレートを書き換えて RDS(Amazon Aurora)のマスターユーザーパスワードを更新しました。CloudFormation スタックの更新完了後も、古いパスワードでログインができ、新しいパスワードに変更されていません。 パスワードを変更するにはどうしたら良いでしょうか。

どう対応すればいいの?

RDS コンソールからの変更をご検討ください。

CloudFormation から RDS のマスターユーザーパスワードの変更はサポートされていますが、変更はメンテナンスウィンドウのタイミングで反映されます。そのため、パスワードの変更をすぐに反映したい場合は、RDS コンソールから「すぐに適用」を選択し、パスワードの変更をお試しください。

参考:Amazon RDS DB インスタンスのマスターユーザーのパスワードをリセットする

CloudFormation ではなぜすぐに適用されないのですか?

DB インスタンスの設定変更は、必ずしも即時適用されるわけではなく、メンテナンスウィンドウのタイミングでも実施されます。

変更内容を即時適用したい場合、RDS コンソールの場合は変更内容を設定する際に「すぐに適用」を選択、AWS CLI または RDS API の場合はapply-immediatelyパラメータをtrueに設定する必要があります。

現時点で、CloudFormation で マスターユーザーパスワードの変更を行なった場合、自動的にapply-immediatelyパラメータがfalseの RDS API が実行され、apply-immediatelyパラメータをtrueにする方法は提供されていません。

そのため、CloudFormation のテンプレートを書き換えて RDS(Amazon Aurora)のマスターユーザーパスワードを更新しても、即時反映されるわけではないことを理解し、必要に応じて RDS コンソールもしくは AWS CLI、RDS API からの変更をご利用ください。

なお、CloudFormation にapply-immediatelyオプションを追加する issue(要望)が公開されていますので、必要に応じて状況をご確認ください。

AWS::RDS::DBCluster apply immediately · Issue #597 · aws-cloudformation/cloudformation-coverage-roadmap · GitHub

参考資料