Sun~sun~Flower's

〜ITエンジニアとして日々前向きに生きていくノウハウブログ〜

MENU

【Railsアプリケーション】secrets.ymlの使い方について

f:id:mTakata:20200415184143j:plain

こんにちは。

当ページにアクセスしてくださり、ありがとうございます。

 

この記事は、プログラミング言語「Ruby」のフレームワーク「Rails」についての記事になります。

 

問題

Railsではsecrets.ymlにアクセスキーなどの重要情報を記載することがあります。

 

ですが、以下の手順でGitHubへのpushを行なった場合、問題が発生する恐れがあります。

 

その理由と対処法を説明してください。

 

手順:
  1. rails new を行い新規にアプリケーションの作成を行なった。
  2. 開発を少し進めた段階で、一度全てのファイルをGitHubにpushした。
  3. config/secrets.ymlにAWS S3のアクセスキーを記述した。
  4. gitでpushされるのを防ごうと考え、.gitignoreの中に、secrets.ymlを追加した。
  5. 変更があった全てのファイルをpushした。

 

模範回答

理由
一度コミットしたファイルについては、その後.gitignoreに追加したとしてもGitの管理下から外されず、pushされます。

 

その為、他人にsecrets.ymlの情報が見られてしまいます。

 

対処方法
(例)
・ターミナルで


 > git rm --cached secrets.yml


 を実行しGitで管理されないようにします。

 

・secrets.ymlには直接キーを記述せず、環境変数を参照するようにします。


環境変数とは・・・その端末のみからアクセスできる変数です。

 

パスの指定や、今回のようにキーを保存するのに使われます。

 

Linuxでは.bash_profileに記述をすることで、毎回環境変数を設定しなくても起動時にセットすることができます。

 

よく使う機能のため、ネット記事等を参考に整理しておくことをお勧めします。

 

以上となります、参考になれば幸いです。

 

最後まで読んでいただき、ありがとうございました。