はじめに
この記事は下書きにあった古いものを見つけました。そのままにしておくのももったいないと思い公開します。
記事の正確性についてはかなり不透明です。
まとめ
Rails6
multi environment credentialsを使う
RAILS_ENV =環境名
- 機密情報は
config/credentials/環境名.yml.encに記述 - 機密情報のキーは
config/credentials/環境名.keyに配置- 編集するときは
rails credentials:edit --environment 環境名
- 編集するときは
-
RAILS_MASTER_KEYを使う際は環境にあったキーを設定 -
config/credentials.yml.encはRAILS_ENVが指定されていないときに参照
Rails5.2
credentials.yml.encを使う
- 機密情報は
config/credentials.yml.encを参照 -
RAILS_MASTER_KEYを使う際はconfig/master.keyを設定- 編集するときは
bin/rails credentials:edit
- 編集するときは
はじめに
credentials.yml.encでgoogle検索をかけると様々な記事が出てくる。
また、Railsの学習でも当然credentials.yml.encが出てくるのだが、バージョンによって情報が混在していてよくわからなった。
サイトによっては「credentials.yml.encと環境.yml.encを内容によって使い分ける」(≒どっちにも情報を入れる?)と書いてあったりしてよくわからなかった。
自分で調べた上での理解のため、もし間違っている部分があればお知らせください…
credentials.yml(環境名.yml)って何よ?
railsで使う機密情報を入れておくファイルです。
例えばAPIKEYやDBの接続情報などの機微な情報を格納しておきます。
railsで使いたい際は
Rails.application.credentials.aws[:access_key]
のように読み出します。
※注: Rails.application.secretsで取得できると記載がある場合がありますが、これはRails5.1までの話であり、このときまではcredentials.ymlではなくsecrets.ymlでした。
どこにあるの?
credentials.ymlはconfig/credentials.yml.enc、
環境名.ymlはconfig/credentials/環境名.yml.encにあります。
どうやって作るの?
rails credentials:edit
rails credentials:edit --enviroment 環境名
参考文献
@tearoom6 さんの素晴らしい記事
Rails 秘密情報管理機能の変遷
Rails 6 adds support for multi environment credentials
Rails 6よりサポートされたMulti Environment Credentialsをプロジェクトに導入する