2 flat logo on transparent 256
2018-02-27

Ruby On Railsの環境変数を管理できるGem dotenv-railsの紹介

X426

ツイッターやフェイスブック、AWSなど各サードパーティーのサービス毎にログインIDやPWを管理していると割と手間になってきます。

このIDやPWをコードにべた書きしていくのはセキュリティ上あまりお勧めできませんしまた、管理する上でもかなり手間になってきます。

そんな中Ruby On RailsのGemであるdotenv-railsを利用すれば .envと呼ばれるファイルを作成し、その.envファイルからIDやPWの情報を呼び込むことができるようになります。

dotenv-railsのインストール

Gemファイルにgem 'dotenv-rails'を追記しbundle install

gem 'dotenv-rails'

.envファイルを作成

Ruby On Railsのアプリケーションのディレクトリの直下に(GemFileなどと同階層)に.envファイルを新規作成

.envファイルを読み込む

基本は読み込みたいファイルへENV[]と記述します。

.env

AWS_ID=hoge
AWS_PASS=fuga

test.rb

ID = ENV['AWS_ID']
PASS = ENV['AWS_PASS']

gitのコミット対象から外す

環境変数を設定しているファイルなので、一般公開すると 最悪、アカウントの不正ハッキングが発生します。 その為 gitのコミット対象から.envファイルを外すように設定します。

.gitignore

/.env

.gitignoreファイル内で、/ファイルとすると対象のファイルを除外する設定となります。

既にgitにpushしてしまっている場合下記のコマンドで削除します。

 git rm --cached .env

ただ既に.envをgitへ公開してしまっている場合は、高確率で不正アクセスが発生するのでアカウントの再登録をお勧めします。

理由として悪意のある者がgitで公開されている、.envファイルを自動でクロールするプログラムを走らせているからです。

その為.envを公開した瞬間に、アカウントを乗っ取られる可能性がありますので、非常に危険です。

実際私の知人は.envを誤って公開した当日にAWSのアカウントを乗っ取られ、勝手に海外のリージョンでサーバーを建てられて、30万程度請求が発生しました。 恐らくビットコインなどのマイニングで利用されたのだと思います。

最終的にAWSからは不正アクセスで返金されましたが、何度も言いますが.envは一般公開された時点で非常に危険です。 ご注意ください

前の記事
次の記事