온라인 멘토와 함께하는 공부/인공지능

[장고 프로젝트] 민감한 API 키 보안 관리

easyfly 2025. 5. 1. 23:30
반응형

[장고 프로젝트] 민감한 API 키 보안 관리

.env 파일을 홈 디렉터리 내의 별도 env/ 폴더에 보관하는 방식은 보안성과 프로젝트 간 재사용성을 높이는 실용적인 방법입니다. 다음은 이 방식을 포함한 총 3가지 API 키 보안 관리 방법입니다.


✅ 방법 1: 프로젝트 내 .env 파일 사용 (개발 편의 위주)

✔️ 구조

myproject/
├── .env              ← 여기에 키 저장
├── manage.py
└── myproject/
    └── settings.py

✔️ 설정

  1. .env 파일 작성
  2. OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  3. settings.py
  4. from decouple import config OPENAI_API_KEY = config('OPENAI_API_KEY')
  5. .gitignore
  6. .env

프로젝트 안에 .env 파일 포함


✅ 방법 2: 홈 디렉터리의 ~/env/.env 파일 사용 (보안성 + 재사용성 강조)

✔️ 구조

~/
└── env/
    └── .env       ← 키를 중앙 관리

✔️ 설정

  1. ~/env/.env 파일 작성
  2. OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  3. settings.py에서 직접 경로 지정
  4. 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')
  5. 장점
    • 여러 프로젝트에서 동일한 키를 공유 가능
    • 프로젝트 폴더 외부에 두어 Git에 포함될 위험 없음

✅ 방법 3: 시스템 환경 변수 사용 (운영 서버 환경에 적합)

✔️ 설정

export OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

settings.py에서:

import os
OPENAI_API_KEY = os.environ.get('OPENAI_API_KEY')

📌 세 가지 방식 요약

방식 보안성   개발 편의성  서버 운영 적합성  특징
프로젝트 내 .env 보통 매우 높음 낮음 가장 쉽게 적용 가능
홈 디렉터리의 ~/env/.env 높음 높음 중간 여러 프로젝트와 공유 가능
시스템 환경 변수 매우 높음 낮음 매우 높음 완전한 서버 보안 중심

 

반응형