Secret 관리
Django 프로젝트를 git에 push 하거나, 다른 곳에 공유할 때 비밀이 유출되는 것은 상당히 위험하다. 프로젝트의 규모가 클수록 위험도는 더더욱 증가하기 때문에 secret을 관리하는 것은 매우 중요하다. 본 포스팅에서는 민감정보를 효율적으로 관리하는 방법에 대하여 소개한다.
Django Environ
1) install django-environ
별도의 파일을 환경 파일로 만들어 사용하려면 django-environ
을 사용하는 것이 가장 간편하다. 먼저, 터미널에서 django-environ
을 설치해준다.
> pip install django-environ
2) .env
파일 생성
.env
파일을 생성하여, 민감 정보를 작성해준다. 장고 시크릿 키, DB 접속정보, 또는 API 키 등등 유출되면 안되는 정보들을 모두 작성해준다.
// 장고 시크릿 키
DJANGO_SECRET_KEY=시크릿키
// DB 접속정보
DB_NAME=name
DB_USER=user
DB_HOST=localhost
DB_PASSWORD=pw
3) .gitignore
작성
git에 push할 예정이라면, .gitignore
에 .env
파일을 등록하여 push 되지 않게 해준다.
.env
4) import secret
environ
을 import 해준 뒤, env 파일이 작성되어 있는 곳의 경로를 지정해준다. 그리고 나서 env() 안에 원하는 환경변수의 이름을 넣어주면 끝이다. env파일 경로는 미리 베이스 디렉토리를 정해놓고 BASE_DIR / '.env'
와 같은 형식으로 써주는 것이 유지/보수에 더 유리하다.
import environ
# environ setting
env = environ.Env()
environ.Env.read_env('env 파일 경로')
# 시크릿 키
SECRET_KEY = env('DJANGO_SECRET_KEY')
댓글남기기