낮에 메일을 확인하던 중 어마 무시한 메일을 발견했다.
Django Secret Key exposed on GitHub😮
알고 보니 장고에서 사용하는 AWS 시크릿 코드, 장고 시크릿 키 등의 값은 보안을 위해 프로젝트 코드에 포함하면 안 된다고 한다. 반성의 의미로 settings.py의 SECRET_KEY 분리하는 법을 복습해보겠다.
1) Django 프로젝트 폴더 내 secret.json 파일 새로 만들기
2) settings.py에서 복사한 SECRET_KEY값 딕셔너리 형태로 붙여 넣기
*key와 value는 큰 따옴표로 감싸주는 거 잊지 말기
3) settings.py에서 JSON파일 불러오기
#settings.py
import os, json
from django.core.exceptions import ImproperlyConfigured
from pathlib import Path
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
#json파일을 파이썬 객체로 변환
secret_file = os.path.join(BASE_DIR, 'secret.json')
with open(secret_file) as f:
secret = json.loads(f.read())
def get_secret(setting, secret=secret):
try:
return secret[setting]
except KeyError:
error_msg = "Set the {} environment variable".format(setting)
raise ImproperlyConfigured(error_msg)
SECRET_KEY = get_secret("SECRET_KEY")
4) .gitignore 파일에 secret.json 추가하기
5) commit 후 push
깃허브 저장소를 확인해보니 JSON파일 없이 잘 올라간 것을 확인할 수 있었다.
시크릿 키를 관리하는 법 중에는 환경변수를 사용하는 법도 있다. 관련 포스팅 및 참고 자료는 아래 게시글 확인❗
'LIKELION 9th' 카테고리의 다른 글
[멋쟁이 사자처럼] 자바스크립트 세션 시작 (feat. 투두리스트 만들기) (2) | 2021.08.23 |
---|---|
[멋쟁이 사자처럼] 토이프로젝트 TRIP-LOG 완성과 회고 (4) | 2021.06.30 |
[멋쟁이 사자처럼] 토이프로젝트 아이디어 발표🌊 (0) | 2021.06.03 |
[Django] 템플릿 상속 및 css 파일 적용하기(feat. 내비게이션 바) (0) | 2021.05.29 |
[멋쟁이 사자처럼] Django로 블로그 만들기3 (댓글 쓰기) (0) | 2021.05.25 |