Rails 5.1 Encrypted secretsの使い方

Rails 5.1がリリースされました。
Ruby on Rails 5.1 Release Notes — Ruby on Rails Guides

待望のsecrets.ymlの暗号化が取り込まれているので早速使用してみました。

暗号化されたsecrets.yml生成

$ rails secrets:setup

生成されるファイル

  • config/secrets.yml.key
    • 複合する為の鍵ファイル
  • config/secrets.yml.enc
    • 暗号化されたsecrets.yml

追記されるファイル

  • .gitignore
    • config/secrets.yml.keyを除外する設定が追記

生成時に表示されるメッセージの中に下記表記があります。

You can edit encrypted secrets with `bin/rails secrets:edit`.
Add this to your config/environments/production.rb:
config.read_encrypted_secrets = true

編集方法と有効にする設定方法が記載されています。
prodiction.rbに記載するよう記述がありますが、development.rbに記載すればdevelopmentでも使用することが可能でした。
また、暗号化されていないconfig/secrets.ymlを併用することもできるようです。

暗号化されたsecrets.yml編集

上記に記載されたコマンドで編集が可能ですが、編集の際環境変数EDITORのエディタが使われます。

$ EDITOR=vim rails secrets:edit 

暗号化されたsecrets.yml利用方法

config.read_encrypted_secrets = trueが設定されており、config/secrets.yml.keyが存在する。または、環境変数RAILS_MASTER_KEYにconfig/secrets.key.ymlの値を設定しておけば自動的に復号してくれます。
Rails.application.secretsで値を取得することが可能です。