はじめに
Rails5.2からcredentials.yml.enc
に機密情報を格納させることができるようになったので、databaseの設定を保存させてみました。
credentials.yml.enc
credentials.yml.enc
にdatabaseの設定を記述する
# credentials.yml.encをviで開く
$ EDITOR="vi" bin/rails credentials:edit
credentials.yml.enc
db:
host: xxxxx
database: xxxxx
username: xxxxx
password: xxxxx
database.yml
database.yml
でcredentials.yml.enc
に指定した値を利用するように設定する
config/database.yml
# 省略
production:
<<: *default
# 省略
host: <%= Rails.application.credentials.db[:host] %>
database: <%= Rails.application.credentials.db[:database] %>
username: <%= Rails.application.credentials.db[:username] %>
password: <%= Rails.application.credentials.db[:password] %>
所感/宿題
- master.keyを総当たりされると復号できてしまうので、publicリポジトリではやらないほうがいい
- データベースが1つだけの環境であれば、
credentials.yml.enc
に格納させておくのが楽ちん - データベースが複数ある環境での運用方法がわからない