LoginSignup
3
3

More than 3 years have passed since last update.

【Rails5.2】credentials.yml.encでmaster key設定

Posted at

初めに

設定方法は様々あるが、今回はVSCodeで編集出来る様にして設定を行う。
ターミナルでもいいのだが、インデントが分かりにくく、無駄な時間を費やした経験があるからです。

VSCodeでcredentialsを編集できるようにする。

1,VSCodeで、「Command + Shift + P」を同時に押してコマンドパレットを開く。
2,「shell」と入力
3,「PATH内に'code'コマンドをインストールします」という項目が表示されるので、それをクリック。
上記の操作でターミナルから「code」と打つことでVSCodeを起動できるようになる。

編集の仕方

ターミナル
$ EDITOR='code --wait' rails credentials:edit

「 rails credentials:edit」が、credentialsファイルを編集するためのコマンド。
使用するエディタにcodeすなわち今回はVSCodeを指定。
下記の様に復号化された内容が表示される。

credentilals.yml
# aws:
#   access_key_id: 123
#   secret_access_key: 345

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

そして、下記の様に編集

credentilals.yml
aws:
  access_key_id: (ここにはダウンロードしたAccess key IDを入力)
  secret_access_key: (ここにはダウンロードしたSecret access keyを入力)

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

値の確認

ターミナル
$ rails c
$ Rails.application.credentials[:secret_key_base]
$ Rails.application.credentials[:aws][:access_key_id]

これで、先ほど見た設定の中身が表示される。

CarrierWaveの設定

CarrierWavenに「aws_access_key_id」と「aws_secret_access_key」を設定。

carrierwave.rb
CarrierWave.configure do |config|
  config.fog_credentials = {
    provider: 'AWS',
    aws_access_key_id: Rails.application.credentials[:aws][:access_key_id],
    aws_secret_access_key: Rails.application.credentials[:aws][:secret_access_key],
    region: 'ap-northeast-1'
  }
end

master keyがプッシュされない様に.gitignoreに記載

これで設定OK。
これでローカル環境の設定は完了。
あとは本番環境にも同じ設定をしたら終了。

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

本番環境の環境変数にマスターキーをセットする

本番環境で環境変数を使用するために、/etc/environmentsファイルで設定を行いため、sshで本番環境にログインする。

ターミナル
$ ssh -i ~/.ssh/pemファイル名) ec2-user@(EC2Elastic IP
リモートのターミナル
$ [ec2-user]$ sudo vim /etc/environment

ここで「i」キーを押して編集。

/etc/environment
(前略)
RAILS_MASTER_KEY='master.keyの値'

これで設定終了。exit抜ける。
EC2を一回ログインし直して、下記のコマンドで確認して設定されていればOK。

/etc/environment
(前略)
[ec2-user]$ env | grep RAILS_MASTER_KEY
3
3
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
3
3