온라인 멘토와 함께하는 공부/인공지능
[장고 프로젝트] 민감한 API 키 보안 관리
easyfly
2025. 5. 1. 23:30
반응형
[장고 프로젝트] 민감한 API 키 보안 관리
.env 파일을 홈 디렉터리 내의 별도 env/ 폴더에 보관하는 방식은 보안성과 프로젝트 간 재사용성을 높이는 실용적인 방법입니다. 다음은 이 방식을 포함한 총 3가지 API 키 보안 관리 방법입니다.
✅ 방법 1: 프로젝트 내 .env 파일 사용 (개발 편의 위주)
✔️ 구조
myproject/
├── .env ← 여기에 키 저장
├── manage.py
└── myproject/
└── settings.py
✔️ 설정
- .env 파일 작성
- OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- settings.py
- from decouple import config OPENAI_API_KEY = config('OPENAI_API_KEY')
- .gitignore
- .env
✅ 방법 2: 홈 디렉터리의 ~/env/.env 파일 사용 (보안성 + 재사용성 강조)
✔️ 구조
~/
└── env/
└── .env ← 키를 중앙 관리
✔️ 설정
- ~/env/.env 파일 작성
- OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- settings.py에서 직접 경로 지정
- from decouple import Config, RepositoryEnv import os env_path = os.path.expanduser('~/env/.env') config = Config(RepositoryEnv(env_path)) OPENAI_API_KEY = config('OPENAI_API_KEY')
- 장점
- 여러 프로젝트에서 동일한 키를 공유 가능
- 프로젝트 폴더 외부에 두어 Git에 포함될 위험 없음
✅ 방법 3: 시스템 환경 변수 사용 (운영 서버 환경에 적합)
✔️ 설정
export OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
settings.py에서:
import os
OPENAI_API_KEY = os.environ.get('OPENAI_API_KEY')
📌 세 가지 방식 요약
방식 | 보안성 | 개발 편의성 | 서버 운영 적합성 | 특징 |
프로젝트 내 .env | 보통 | 매우 높음 | 낮음 | 가장 쉽게 적용 가능 |
홈 디렉터리의 ~/env/.env | 높음 | 높음 | 중간 | 여러 프로젝트와 공유 가능 |
시스템 환경 변수 | 매우 높음 | 낮음 | 매우 높음 | 완전한 서버 보안 중심 |
반응형