パスワードやトークンを隠す
パスワードやトークンを含んだ設定ファイルを push してしまったことは皆さんあると思います*1。そういう「やらかし」をしないために、pit
を用いてパスワードやトークンを隠す方法です。なお、Ruby で実装します。
手順
1. pit
をインストールする
とにかく入れましょう。
$ gem install pit
2. Pit.set
でパスワードをファイルに書き込む
set
というメソッドを以下のように実行し、パスワードをファイルに書き込みましょう*2。
パスワードが書き込まれる場所はデフォルトで ~/.pit/default.yaml
になります。
require 'pit' Pit.set( 'development', data: { username: 'foo', password: 'bar', } )
3. 書き込まれたファイルを確認する
「2.」を実行することで、~/.pit/default.yaml
にパスワードが書き込まれたはずです。さっそく見てみましょう
$ cat ~/.pit/default.yaml --- development: :username: foo :password: bar
うまく書き込まれていました。
4. 書き込まれているパスワードを利用する
「書き込み」はできましたので次は「読み出し」です。読み出しには get
メソッドを用います。
以下のように書くことでパスワードが取り出せます。分かりやすくするために、set
メソッドの部分をコメントアウトで残しておきます。
require 'pit' # Pit.set( # 'development', # data: { # username: 'foo', # password: 'bar', # } # ) account = Pit.get('development') puts account[:username] #=> foo puts account[:password] #=> bar
補足
パスワードの書かれている YAML は手動で作っても構いません。またワンライナーで pit
を実行して YAML を作成することも可能です。
さて、pit を利用することにより確かにパスワードを誤って push することはないですが、コードの中に pit の記述が入り込まざるを得ないし、オープンソースで公開した場合に、使ってくれる方に pit の利用を求めなければいけないしで、あんまり良い方策ではないように思います。それともそういう場合のノウハウってあるんでしょうか。