1. satreu16

    Posted

    satreu16
Changes in title
+【Rails5.2】credentials.yml.encでmaster key設定
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,95 @@
+## 初めに
+設定方法は様々あるが、今回はVSCodeで編集出来る様にして設定を行う。
+ターミナルでもいいのだが、インデントが分かりにくく、無駄な時間を費やした経験があるからです。
+## VSCodeでcredentialsを編集できるようにする。
+1,VSCodeで、「Command + Shift + P」を同時に押してコマンドパレットを開く。
+2,「shell」と入力
+3,「PATH内に'code'コマンドをインストールします」という項目が表示されるので、それをクリック。
+上記の操作でターミナルから「code」と打つことでVSCodeを起動できるようになる。
+
+
+## 編集の仕方
+```ruby:ターミナル
+$ EDITOR='code --wait' rails credentials:edit
+```
+「 rails credentials:edit」が、credentialsファイルを編集するためのコマンド。
+使用するエディタにcodeすなわち今回はVSCodeを指定。
+下記の様に復号化された内容が表示される。
+
+```ruby: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・・・
+```
+
+そして、下記の様に編集
+
+```ruby: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・・・
+```
+
+## 値の確認
+
+```ruby:ターミナル
+$ 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」を設定。
+
+```ruby: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。
+これでローカル環境の設定は完了。
+あとは本番環境にも同じ設定をしたら終了。
+
+```ruby:.gitignore
+# Ignore master key for decrypting credentials and more.
+/config/master.key
+```
+
+
+## 本番環境の環境変数にマスターキーをセットする
+
+本番環境で環境変数を使用するために、/etc/environmentsファイルで設定を行いため、sshで本番環境にログインする。
+
+```ruby:ターミナル
+$ ssh -i ~/.ssh/(pemファイル名) ec2-user@(EC2のElastic IP)
+```
+```ruby:リモートのターミナル
+$ [ec2-user]$ sudo vim /etc/environment
+```
+ここで「i」キーを押して編集。
+
+```ruby:/etc/environment
+(前略)
+RAILS_MASTER_KEY='master.keyの値'
+```
+これで設定終了。exit抜ける。
+EC2を一回ログインし直して、下記のコマンドで確認して設定されていればOK。
+
+```ruby:/etc/environment
+(前略)
+[ec2-user]$ env | grep RAILS_MASTER_KEY
+```