技術

投稿日:

どうも中田です。

Rails5.2から config/credentials.yml.encconfig/master.key が追加されてますが、
これちゃんと使いましょうねという話

これら簡単に言うと、接続情報とか大事な情報を暗号化して、gitで管理できるようにできるもんです。
(接続情報とかgitで管理すべきもんじゃないですもんね)

ファイルの説明

config/master.key: 暗号化するための鍵 (git管理対象外)
config/credentials.yml.enc: 情報を暗号化したファイル

config/credentials.yml.encを編集したい!

EDITOR=vim bin/rails credentials:edit

そうやって編集したり↓こんな感じのファイルになるかもですね

secret_key_base: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

aws:
  access_key_id: xxxxxxxxxxxxxxx
  secret_access_key: xxxxxxxxxxxxxxxxxxxxxxxxxx

config/credentials.yml.encを参照したい!

上記でaccess_key_idをプログラムから参照したい場合はこれ。

Rails.application.credentials.dig(:aws, :access_key_id)

じゃあ本番どうすんの問題

一般的に本番環境には、git管理対象のファイルしかデプロイしない。

master.keyはgit管理対象外なので、情報複合化できないじゃん!
そんな時のために↓この環境変数でmaster.keyの情報を設定しておけば大丈夫。

export RAILS_MASTER_KEY=xxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxcat config/master.key の値です

今日はこんな感じで。

-技術

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

[ionic] アプリ名にハイフンやアンダーバー入ってると困る件

どうも中田です 今日もionicのお話。 スマホアプリ作るときに test-ap …

no image

【Rails】idのauto increment設定を削除する

こんにちは railsを触っていてidからauto incrementの設定を削 …

no image

【Grunt】楽々デプロイ(grunt-rsync)

どうも、中田です。 gruntでアプリをデプロイするときにどうやったらいいかぁ〜 …

[Angular] has no exported member ‘XXXLoginComponent’.

どうも中田です Angularでコンポーネント名を階層構造にあった名前にしようと …

Amazon Rekognitionを使うと写真に自動でタグを付けられます。

こんにちは、高石です。 来月20日(5月20日)はエンたまもくもく会#5です。 …