AWS SecretsManager密码轮换在Rails中不起作用

时间:2020-10-08 23:10:39

标签: ruby-on-rails-3 rails-activerecord aws-secrets-manager

我们正在使用AWS SecretsManager(SM)来存储Rails应用程序的旋转数据库密码。但是,当SM旋转密码时,我们会收到“致命错误:用户的密码验证失败”。

密码在database.yml中读取

password: '<%= AwsSecretService.new.get_db_pwd(ENV['DATABASE_USERNAME']) if Rails.env.production?   %>'

问题似乎是ActiveRecord在初始化时正在从database.yml缓存数据库凭据,而不重新解析database.yml。

我的想法是以某种方式捕获身份验证失败的错误并重新初始化ActiveRecord。使用以下命令:

ActiveRecord::Base.establish_connection(::Rails.application.config.database_configuration[::Rails.env]) 

我不确定如何捕获错误。因为所有activerecord模型都从它继承,所以我需要在application_record.rb中放置一个错误处理程序吗?

还是使用某种观察者会更好?

想法?

0 个答案:

没有答案