오히려 좋아..

상황이 나쁘게만 흘러가는 것 같을 때 외쳐보자.. .

궁금한 마음으로 포트폴리오 보기

Web Programming/Django

[Django] 장고 비밀키 관리하기

junha6316 2020. 11. 27. 11:37

종종 장고 secret키 관리가 어려울 때가 있다.

 

github에 푸쉬할 때 settings.py 내부에 secret키가 있어 아래와 같은 경고 메일이 날라오기도 한다. 

Django Secret Key exposed on GitHub

 

아래의 글은 이를 해결하기 위한 방법을 정리해둔 글이다.

 

1. 동적 변수 할당

이거 나중에 작성할게요~

2. django-dotenv 사용하기

django-dotenv는

일단 먼저 django-dotenv를 pip나 pipenv를 이용해 다운받아준다.

pip install django-dotenv

# 또는

pipenv install django-dotenv

manage.py가 있는 디렉토리에 .env 파일을 만들어 준다. 그리고 .gitignore에 .env를 추가해준다.,

.env 추가
.gitignore에 .env 추가

 

원하는 변수명에 암호키를 저장해준다.

manage.py에 import dotenv해주고 main에 main() 윗 줄에 dot.read_dotenv()를 작성해준다.

#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys


import dotenv


def main():
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings")
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)


if __name__ == "__main__":
    dotenv.read_dotenv()
    main()

 

아래와 같이 사용하면된다.

import os


secret = os.environ.get("MAILGUN_USERNAME")
#secret = os.environ.get("변수명")