目的
- パスワードのハードコーディングはセキュリティ監査の際に指摘を受ける可能性がある
- ハードコーディングの対策としてパスワード等の機密情報を環境変数から読み取る
目次
準備
環境変数登録用リスト作成
※環境変数を格納するファイルは機密情報を書くことになるため取り扱いに注意。自信でしか閲覧できないよう権限設定しましょう。
# ホームディレクトリ.env/.envlist ディレクトリとファイルを作成
cd
mkdir .env
vi .env/.envlist
### ここから ###
環境変数名 値
例)PAWD password
### ここまで ###
# 権限変更
chmod 600 .env/.envlist
実装
.bashrcで外部の環境変数リストとして読み込むように設定
# .bashrc に以下を追記
vi .bashrc
### ここから ###
function set_env() {
env_file=/tmp/env_$RANDOM
cat $1 | awk '{print "export " $1 "=" $2}' | cat >> $env_file && source $env_file && rm $env_file
}
set_env $HOME/.env/.envlist
### ここまで ###
上記設定後、設定したユーザでログインした際に環境変数リストから環境変数を読み込み設定されるようになる。
動作確認
# プロンプトで確認
echo $環境変数名
例)echo $PAWD
# python で取得する場合
os.environ['環境変数名']
例)os.environ['PSWD']
コメント