8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

credentials.yml.encでRails環境変数の管理

Posted at

前にdotenvを使ったRails環境変数の設定方法について記事を書いた
dotenvを使ったRails環境変数設定)ところ、
Rails5.2以降ならcredentials.yml.encで環境変数管理ができると教えて頂いたので、備忘録を兼ねて書きます。

参考記事

Rails5.2から追加された credentials.yml.enc のキホン

credentials.yml.encの編集

config配下にcredentials.yml.encというファイルがアプリを作成した時に作られている。ここに認証情報を定義する。

credentials.yml.encを編集するためにはrails credentials:editを実行する必要がある。(ここではEDITORが未指定なのでEDITOR="vi"としている)

ルートディレクトリで以下を実行

$ EDITOR="vi" bin/rails credentials:edit

認証情報を記載

hoge_keyを追加

credentials.yml.enc
# aws:
#   access_key_id: 123
#   secret_access_key: 345

 hoge:
    hoge_key:hogehogehoge

# Used as the base secret for all MessageVerifiers in Rails, including the one protecting cookies.
secret_key_base: 43f416e170882b7f2d3422e9c8d74c81664d9728851531.......

認証情報を取り出す時

hoge_key = Rails.application.credentials[:hoge_key]

credentials.yml.encはmaster keyを利用して暗号化・復号され、master keyの値はconfig/master.keyに記載されている。
master.keyはデフォルトで.gitignoreに含まれており、master keyがGitリポジトリに含まれないようになっている。

.gitignoreを確認

.gitignore
# Ignore master key for decrypting credentials and more.
/config/master.key

これで認証情報を含んだソースをGitに上がるのを防ぐことができた。

8
8
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
8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?