본문 바로가기
Python/Django

미리 알려주지만, 이 글을 클릭하지 않으면 당신의 프로젝트는 위험합니다!

by 코드뭉치 2023. 4. 26.

성공....?

시크릿 키 분리 방법 3가지

 

1️⃣ secrets.json 

secrets.json 파일 생성 - setting.py 수정 - secrets.json 파일 수정

 

장점 : 패키지 설치할 필요 없음, 파일 2개만 수정하면 끝.

단점 : settings.py에 팔만대장경을 적어야 한다.

 

#settings.py
import os
import json
from django.core.exceptions import ImproperlyConfigured

secret_file = os.path.join(BASE_DIR, 'secrets.json')

with open(secret_file) as f:
    secrets = json.loads(f.read())


def get_secret(setting):
    try:
        return secrets[setting]
    except KeyError:
        error_msg = "Set the {} environment variable".format(setting)
        raise ImproperlyConfigured(error_msg)

SECRET_KEY = get_secret("SECRET_KEY")

 

# secrets.json # " " 안에 넣어줘야함.
{
    "SECRET_KEY" : "#######YOUR#######SECRET#######KEY#######"
}

 

 

2️⃣ django-dotenv

django-dotenv 패키지 설치 - .env 파일 생성 - settings.py 수정 - manage.py 수정 - .env파일 수정

 

장점 : 직관적인 설정방법으로 금방 외워서 할 수 있다.

단점 : 난 안됨😭

 

# settings.py
import os

SECRET_KEY = os.environ.get("SECRET_KEY")

 

#manage.py
import dotenv

if __name__ == '__main__':
    dotenv.read_dotenv() # <<<이 부분 추가
    main()

 

# .env
SECRET_KEY = '#######YOUR#######SECRET#######KEY#######'

 

 

3️⃣ decouple

decouple 패키지 설치 - .env파일 생성 - settings.py 수정 - .env 파일 수정

 

장점 : 매우 간단함.

단점 : 아직 못찾음.

 

# settings.py
from decouple import config

SECRET_KEY = config('SECRET_KEY')

 

# .env
SECRET_KEY = '#######YOUR#######SECRET#######KEY#######'

 

댓글