🖥
Rails – 今更だけど credentials.yml.enc / secret_key_base の扱いがよく分かってなかった
つながり
-
credentials.yml.enc
でどんな値でも暗号化/複合できる -
master.key
の値でcredentials.yml.enc
を複合出来る -
secret_key_base
は秘密情報なのでcredentials.yml.enc
に含めておくのが良い
ということらしい
rails new
そもそも rails new した時に
config/credentials.yml.enc
config/master.key
がセットで生成されるようだ
master.key
はただ復号用の値を記録しただけのファイルなのだが、この値があれば credentials.yml.enc
を複合したり編集したり出来る
だが master.key
は .gitignore
に含まれているので git操作で消えている場合もあるだろう
編集
bin/rails credentials:edit
でファイル編集が出来るはずなのだが怒られた
-
master.key
がないので自動生成してくれた -
config/credentials.yml.enc
を暗号化したのは別のmaster.key
だったので複合は出来ない
ということみたいだ
EDITOR=vi bin/rails credentials:edit
Adding config/master.key to store the encryption key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Save this in a password manager your team can access.
If you lose the key, no one, including you, can access anything encrypted with it.
create config/master.key
Couldn't decrypt config/credentials.yml.enc. Perhaps you passed the wrong key?
credentials の編集が初めての場合は credentials を削除してやり直してしまおう
rm config/credentials.yml.enc
EDITOR=vi bin/rails credentials:edit
以下のようなテンプレ内容が生成されるので、そのまま保存してみる
# aws:
# access_key_id: 123
# secret_access_key: 345
# Used as the base secret for all MessageVerifiers in Rails, including the one protecting cookies.
secret_key_base: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
再編集
これで準備が整った
master.key
ファイルがあればこのまま編集し続けられる。
EDITOR=vi bin/rails credentials:edit
master.key
ファイルが無くても環境変数で値指定すれば複合・編集が可能だ
RAILS_MASTER_KEY=yyyyyyyyyyyyyyyy EDITOR=vi bin/rails credentials:edit
編集できない場合
エディタ指定が変だとエラーもなく終了してしまうようだ
EDITOR=waaaaaaa bin/rails credentials:edit
File encrypted and saved.
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2023-04-03
Discussion