Encrypted Credentials②
マスターキーの管理
Railsではアプリ作成時に、Gitの管理から外すように設定されています。
.gitignore
# Ignore master key for decrypting credentials and more. /config/master.key
上記のようにプッシュしてしまわないように設定されています。
ただ、チーム開発の時はマスターキーを共有しないとcredentials.yml.encの中身を見れないので、どのように共有するのかを書いていきます。
ローカル開発環境でのマスターキーの共有方法を確認
まずは、Slack等でconfig/master.keyの内容を共有します。
そして他のメンバーはクローンしたアプリケーションのconfigフォルダに新規で「master.key」ファイルを作成し、Slack等で共有した内容をコピーします。
本番環境でのマスターキーの扱い方を確認
作成したアプリケーションをCapistranoを使ってデプロイしても、本番環境のアプリケーションはcredentialsを読み込むことができません。
なぜならGit Hubへマスターキーがプッシュされないので、EC2にもプルされません。
本番環境でcredentialsを使うための手順
本番環境でcredentialsを使えるようにするため、環境変数にマスターキーを設定する必要があります。
etc/environmentsファイルに記述を行う事で、環境変数を設定することができます。
ターミナル
$ ssh -i ~/.ssh/(pemファイル名) ec2-user@(EC2のElastic IP) [ec2-user]$ sudo vim /etc/environment
iキーを押して編集していきます。
/etc/environment
RAILS_MASTER_KEY='master.keyの値' # config/master.key」の値をコピーして貼り付けます
これで設定はできたので、ログインし直します。
[ec2-user]$ exit $ ssh -i ~/.ssh/(pemファイル名) ec2-user@(EC2のElastic IP) [ec2-user]$ env | grep RAILS_MASTER_KEY
マスターキーの内容が表示されればうまくいっています。