Djangoで秘密鍵やAPIキーなど”隠したい情報”を分けて管理する

Djangoではsettings.pyに秘密鍵、APIキーやデータベースのパスワード情報など記入します。

GitHubなどでソースコードを公開したい場合、こういった機密情報はGitの外側に隠しておきたいですよね。

情報漏洩しないよう、対策してみました。

方法

  1. settigs.pyとは別に設定ファイルを用意し
  2. そこに秘密にしておきたい情報を変数として記入
  3. settings.pyでimport
  4. gitignoreする

別の設定ファイルは.gitignoreに追加してコミットされないようにすればOKです。

別ファイルの用意

settings.pyと同じディレクトリに適当な名前で作ります。取り急ぎsettings_secret.pyとしました。

変数の設定

秘密にしたい情報をsettings_secret.pyに変数として記入します。

SECRET_KEY = 'mogumoguhogehoge'
DATABASES = 'mogumoguhogehoge'

importする

settings_secret.pyを本体の設定ファイルにインポートします。

settings.pyに次の文を追加すればOK。

from .settings_secret import *

.gitignoreに追記

settings_secret.pyがコミットされないように、.gitignoreに追記します。

まとめ

これで一旦大丈夫です。やったね。

Gitは便利だけど、うっかり秘密鍵開けちゃったテヘペロ〜とならないように気をつけたいですね。