AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

credentials.yml.enc をやめる

なんかこれも前に書いた気がするな。

#{RAILS_ROOT}/config/credentials.yml.encmaster.key が無いと復号化できなく欠けた状態では動きません。 master.key はたしか .gitignore に標準で記載されているので、何らかの手段で rails new した人が、チーム内で共有する必要があります。

credentials をやめる方法

#{RAILS_ROOT}/config/enviroments/ 以下の RAILS_ENV に対応する development|staging|production|test それぞれの .rb ファイルから以下のように記述しておきます。

# master.key を参照する (credentials.yml.enc を使う場合はこっち)
# config.require_master_key = true
# SECRET_KEY_BASE を参照する (credentials.yml.enc をやめる場合はこっち)
config.require_master_key = false

おまけ

マーこれ過去に「なくても動くでしょ」って言われて共有拒否られたのがトラウマになってて、 credentials.yml.enc 否定派になっちゃんすよね。 (動くって言ってた人が rails new してたので、そりゃあんたの環境では動くでしょうよ、という顔になっていた。)

正直なところ、昨今では .env .direnv 的なドットファイルで管理せず AWS のパラメタストアのような、インスタンスの外部に存在するサービスに秘匿保存しろ (インスタンスには依存する秘匿情報の類は保存しない、気軽に壊して作れるように) みたいな風潮を感じつつ。 Rails5.2 リリース当時の、ウェブアプリも暗号化がんばろうねとか Docker などコンテナが本格的になる前の風潮から進んだ感あるので。 コンフィグとして存在するのは確かにアリなんだけど、有効化はしなくていいよなって個人的な気持ちから無効化して運用しています。