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')

댓글남기기