안녕하세요!
이번 시간에는 장고(Django)에서 배포하기 위해 SECRET_KEY를 분리하는 실습을 진행하려고 합니다.
개발 환경
Language: python 3.9.4
IDE: PaCharm community
File: secret.json
" SECRET_KEY " 란?
장고(Django)에서 암호화 인증에 사용되는 비밀키
이 SECRET_KEY는 프로젝트마다 유일한 값으로 세팅되어야 합니다.
또한 VCS(Version Control System)에서 제외되어야 하는데 git과 같은 사이트에 올라갔을 때
다른 사용자에게 노출 시 악용(AWS, 채굴)될 우려가 있기 때문에 settings.py 파일이 아닌
외부에 따로 저장되어야 합니다.
따라서 git과 같은 버전 관리 시스템에 PUSH 할 때 제외되어야 합니다.
secrets.json 파일 생성
프로젝트에 secrets.json 파일을 1개 생성한 후 다음과 같이 설정합니다.
그 후 settings.py 에서 SECRET_KEY 붉은 줄 부분을 입력 부분에 붙여 넣어줍니다.
import json
import os
from pathlib import Path
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, 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")
그 후 24라인에 SECRET_KEY 부분을 지우고 다음과 같이 os.path.join을 통해 외부에서 secrets.json 파일을
불러와 주시면 됩니다. 하지만 여기서 끝내시면 secrets.json 파일이 실수로 같이 올라갈 수 있습니다.
따라서 .gitignore 파일을 만들어 git에 올라가지 않아야 하는 불필요한 폴더나 파일을 지정해주면 됩니다.
https://www.toptal.com/developers/gitignore
다음 사이트에서 [Django]를 검색하시면
다음과 같이 .gitignore 기본 설정이 나오는데 이것을 ctrl+A 키로 전체 클릭하신 후에 복사하셔서
새로 만드신 .gitignore에 붙여 넣어주시면 됩니다.
.gitignore 파일을 만드신 후 앞에 내용을 복사 붙여 넣기 합니다.
마지막 라인에 secrets.json을 넣어주시면 tracking 되지 않아서 git에 올라가지 않습니다.
이렇게 시크릿 키(SECRET_KEY)를 분리하실 수 있습니다.
버전 관리나 배포하기 위해서 반드시 거쳐야 하기 때문에 배포 포스팅 전에 한 번 다룹니다.
이번 시간엔 시크릿 키 분리하는 것을 실습했습니다.
고생하셨습니다!
'Framework > Django' 카테고리의 다른 글
[Django] 무료 호스팅 헤로쿠(heroku)로 배포 실습하기 (0) | 2021.08.15 |
---|---|
[Django] 무료 호스팅 파이썬애니웨어(pythonanywhere)로 배포 실습하기 (0) | 2021.08.15 |
[Django] Django 파일 업로드에 대해 알아보고 File Upload 기능 실습하기 (4) | 2021.07.01 |
[Django] 리눅스(우분투)에 장고와 아파치 설치 및 연동하기-(3)(MariaDB 연동) (1) | 2021.06.30 |
[Django] 리눅스(우분투)에 장고와 아파치 설치 및 연동하기-(2)(정적 파일, 에러 확인) (0) | 2021.06.30 |
클라우드, 개발, 자격증, 취업 정보 등 IT 정보 공간
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!