Django secret key 재생성 및 분리

Rayleigh Choi·2022년 2월 4일
1

django 프로젝트를 그냥 github에 push 하면 아래와 같은 메일이 온다.

secret key는 django 보안에 중요하다. django 문서

때문에 secret key를 분리해서 관리하는 것이 좋다. 하지만 이미 github에 올라간 상태여서 settings.py을 수정 하더라도 과거 commit 기록을 보면 key가 노출 되어있다.

따라서 secret key를 재생성 하여 이를 분리 해줄것이다. 분리후 .gitignore를 통해 버전관리에서 제외 시킬것이다.

아래 링크에서 secret key 생성

https://djecrety.ir/

secrets.json 생성(BASE_DIR에, key 분리)

{
    "SECRET_KEY": "new secret key"
}

settings.py 수정

import os, json
from django.core.exceptions import ImproperlyConfigured

secret_file = os.path.join(BASE_DIR, 'secrets.json') # secrets.json 파일 위치를 명시

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

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

SECRET_KEY = get_secret("SECRET_KEY")

.gitignore에 추가

secrets.json
profile
실천하는 개발자입니다.

1개의 댓글

comment-user-thumbnail
2023년 12월 18일

같은상황 필요한 해답 깔금한 글 잘 읽었습니다~

답글 달기