【Django】SECRET_KEYをGithubで公開しない方法〜環境変数を用いて〜

Python

趣味でDjangoアプリを立ち上げてみて、GithubにプッシュするとGitGuardianからこんなメールが!

GitGuardian has detected the following Django Secret Key exposed within your GitHub account.

「DjangoのSECRET KEYが漏洩してますよ」と。初めてだったのでめちゃくちゃビビりました。。。(コミットの差分でも検知されます)

対処法

調べてみると、以下の2つの方法が濃厚そうでした。

  • 環境変数に格納する
  • local_setting.pyというファイルで対応する

海外記事では環境変数で対応する方法が多かったので、今回は環境変数で対応することにしました。

まずは環境変数のライブラリをインストール

有名どころだと、django-environ や python-dotenv ですね。

今回はdjangoに最適化されているだろうという理由で、 django-environ を使用することにしました。

※dockerを使用している場合のインストール方法はこちらの記事で説明してます。

django-environでの変更内容

書き換えたところは以下です。
.gitignoreに.envを追加するのを忘れないようにしてください。

settings.py

import environ
import os

env = environ.Env(
    DEBUG=(bool, False)
)

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

environ.Env.read_env(os.path.join(BASE_DIR, '.env'))

SECRET_KEY = env('SECRET_KEY')

DEBUG = env('DEBUG')

.env

SECRET_KEY=XXXXXXXXXXXXXXXXXXXXXXX
DEBUG=True

タイトルとURLをコピーしました