BETA

rails6の秘匿情報の扱い方

投稿日:2020-01-14
最終更新:2020-01-17

credentials.yml.encについて

外部に漏れてはいけない、秘匿情報を扱う仕組み。
config/credentials.yml.encに記述する。
ただしこのファイルは暗号化されていて、config/master.keyを使うことによって復号できる。

以下のコマンドでconfig/credentials.yml.encを編集できる。

$ rails credentials:edit  

config/master.key$ rails new時にconfig/credentials.yml.encと一緒に生成される。
ただしデフォルトでGitの管理対象にはならないので、レポジトリをGithubからcloneしてきたときなどは含まれない。
production環境は環境変数secret_key_baseが必要なので、このままではproductionで操作できない。

そんな時は、config/master.keyを持ってきてから編集すること。

masterkeyと失くした時は?

config/master.keyがない状態で$ rails credentials:editを実行すると、config/master.keyが作成される。

開発の初期段階でまだconfig/master.keyを捨ててもいい時はこれでいいけど、そうじゃない時はゲームオーバなのでconfig/master.keyは絶対に無くさないこと!

Rails6からは環境ごとにcredentials.yml.encを分けられる

以下のコマンドで、production用のmaster.keyであるproduction.key
credentials.yml.encであるproduction.yml.encが作成される。

$ rails credentials:edit -e production  

ただし、secret_key_baseは自動では書き込まれないので、先に$ rails secretで作成してメモっておくこと。

本番環境にはproduction.keyだけを上げれば良い。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

BЯunoの技術ブログ。日々学んだことを記録していくよ。

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう