LoginSignup
10
13

More than 3 years have passed since last update.

Railsのsecrets.ymlとは何者なのか

Posted at

はじめに

railsで開発しているときに、よく目にする(した)secrets.ymlの役割がよくわかっていなかったので備忘録的にまとめる。

(rails5.2以降は廃止され、credentials.yml.encというファイルになった → Rails5.2からsecrets.yml*が廃止されcredentials.yml.encに統合されるよ)

まとめ

  • secrets.ymlは暗号化通信のために利用される設定ファイル
  • secret_key_baseを設定し通信を暗号化する
  • production環境で他人に見られても問題ない

そもそも

YAMLファイル自体が動くのではなく、プログラムが読み込んで使う。

役割

とりあえずrails newしてみる。

するとこんな感じになっている
スクリーンショット 2019-09-30 5.38.50.png

どうやらsecret_key_baseを設定しているようだ。

secret_key_baseの役割は、Cookieの暗号化など。
secret_key_baseの値が漏れてしまうと復号されてしまうので、production環境では環境変数にsecret_key_baseの値を設定し、secrets.ymlで環境変数を指定する。
production環境においては環境変数が漏れなければ問題ないため、secret.ymlをgitignoreする必要はない。

(参考→
Railsのsecret_key_baseを理解する(翻訳)
secret_key_baseからのhack
)

以上です。

10
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
13