본문 바로가기
C.W.K.
Stream
Lesson 05 of 08 · published

Authentication 과 키 관리

~22 min · auth, api-keys, projects

Level 0Tokenizer
0 XP0/54 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

OpenAI API 는 오래 유지되는 API key 로 인증해. SDK 는 OPENAI_API_KEY 환경 변수를 자동으로 읽어. 키를 소스 코드에 넣거나 채팅에 붙여 넣거나 commit 에 포함하면 안 돼. 공개된 키는 자동 수집기가 몇 분 안에 찾아갈 수 있어.

환경마다 project 와 key 를 나눠

개발, staging, 운영 환경에 project 를 하나씩 만들고 각 project 에 별도 key 를 발급해. 그러면 환경마다 rate limit 과 예산이 갈라져서 개발 중 실수로 운영 예산을 써버리는 일을 막을 수 있어.

키가 유출됐다면

dashboard 에서 즉시 교체해. 이전 키는 30 초 안에 폐기하고, commit history 와 로그를 살펴 어디서 유출됐는지 찾아. 원인을 고쳐야 같은 사고가 되풀이되지 않아.

cwkPippa 의 키 관리 방식

cwkPippa 는 git 에서 제외한 .envOPENAI_API_KEY 를 두고, backend/app/config.py 의 pydantic Settings 로 읽어. 실제 값은 절대 로그에 남기지 않아. FastAPI 나 Next.js 프로젝트에서도 그대로 적용할 수 있는 방식이야.

Code

환경 변수에서 API key 읽기·python
import os
from openai import OpenAI

# Option 1: Automatic (reads OPENAI_API_KEY env var)
client = OpenAI()

# Option 2: Explicit with org and project scoping
client = OpenAI(
    api_key=os.environ["OPENAI_API_KEY"],
    organization="org-XXXXXXXXXXXXXXXX",
    project="proj_XXXXXXXXXXXXXXXX",
)
Project-scoped key + org 지정·text
Authorization: Bearer sk-proj-...
OpenAI-Organization: org-XXXXXXXXXXXXXXXX
OpenAI-Project: proj_XXXXXXXXXXXXXXXX

External links

Exercise

project-scoped key 두 개를 만들어. dev 는 낮은 rate limit 과 월 5 달러 한도를, prod 는 더 큰 한도를 적용해. OPENAI_PROJECT 환경 변수로 둘을 구분하는 스크립트를 작성하고, 키 교체 절차를 README 다섯 줄로 정리해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.