#037 · 48편 중
API 키가 뭐야? 노출되면 왜 큰일나는지 5분 정리

API 키가 뭐야? 노출되면 왜 큰일나는지 5분 정리

ChatGPT API를 처음 써보려고 하면 가장 먼저 만나는 문구가 “API 키를 안전하게 보관하세요”다. 그 키가 뭐고 왜 그렇게까지 강조하는지 알면 첫 사용이 훨씬 안전해진다.

API 키 개념을 설명하는 AI 통통 입문 가이드 이미지

API 키 한 줄 정의

**API 키(API Key)**는 프로그램이 다른 서비스의 API를 부를 때 신원을 증명하는 비밀 문자열이다.

OpenAI, Anthropic, Google API 같은 곳에서 발급받으면 보통 sk-ant-api03-... 같은 50자 안팎의 긴 문자열이 나온다. 이 키를 코드에 넣어 API를 호출하면, 서비스는 그 키를 보고 “이 사람이 이 사용자구나”를 알아낸다.

핵심은 두 가지다. 첫째, 사용량과 요금이 이 키 단위로 측정된다. 둘째, 이 키만 있으면 본인 계정으로 누구나 API를 부를 수 있다. 그래서 비밀로 다뤄야 한다.

중학생도 이해하는 비유

API 키를 가장 쉽게 설명하는 비유는 가게 직원이 가진 출입 카드다.

가게에 들어갈 때 직원은 본인 출입 카드를 찍는다. 카드는 “내가 이 직원이다”를 증명한다. 들어간 뒤 사용한 비용은 그 카드 주인 앞으로 청구된다.

API 키도 똑같다. 카드를 잃어버리면 누구든 그 카드를 주워서 가게에 들어갈 수 있고, 사용한 금액이 카드 주인에게 청구된다. 그래서 카드는 절대 카페 책상에 두고 가면 안 된다.

API 키도 같은 이유로 “코드에 박아 두지 마라”, “GitHub에 올리지 마라”고 강조한다. 한 번 노출되면 누구나 그 카드(키)로 본인 계정에 청구할 수 있다.

실제 노출 사고 패턴

API 키가 노출되는 가장 흔한 패턴은 단순하다.

1. GitHub에 그대로 push 초보 개발자가 .env 파일을 .gitignore에 안 넣고 그대로 push해 키가 공개 레포에 노출. 봇이 자동으로 스캔해 몇 분 안에 키를 가져간다.

2. 스크린샷·블로그에 노출 화면 캡처에 키가 보이는 채로 블로그·트위터에 공유. 흐릿하게 가렸다고 생각해도 픽셀 복원이 가능한 경우가 많다.

3. 강의·튜토리얼 영상 화면 녹화 중 환경변수가 잠시 노출. 몇 초만 보여도 충분히 캡처된다.

4. 동료에게 메신저로 전달 “테스트용으로 잠깐 써봐”라며 슬랙·카톡으로 키 공유. 그 채팅이 다른 사람에게 전달되거나 캐시에 남는다.

5. 노트북 분실 .env 파일이 들어있는 노트북을 분실하고 디스크 암호화도 안 했을 때.

이 모든 경우 즉시 해야 할 일은 동일하다. 그 키를 폐기(revoke)하고 새 키를 발급한다. “그래도 다른 사람이 못 봤겠지”라고 미루다가 며칠 뒤 청구서를 받는 사례가 너무 많다.

비슷한 용어와 차이

용어API 키와의 차이
비밀번호(password)사람이 로그인할 때 쓰는 비밀 문자열사람용. API 키는 프로그램용
OAuth 토큰사용자 동의로 발급되는 임시 인증 토큰만료 시간 짧고 갱신 필요. API 키보다 안전한 편
세션 ID로그인 후 일정 시간 유지되는 임시 식별자브라우저 단위. 짧은 수명
JWT토큰 안에 사용자 정보가 담긴 형식서명으로 위변조 검증
시크릿(secret)일반적인 비밀 문자열API 키도 시크릿의 한 종류

따라서 “API 키 = 비밀번호”가 아니다. 비슷한 비밀 정보지만, API 키는 자동화된 프로그램이 사용한다는 점에서 노출 위험이 비밀번호보다 훨씬 빠르게 현실이 된다.

안전하게 보관하는 5가지 원칙

  1. 코드에 직접 적지 말기 — 항상 .env 같은 환경변수 파일에 보관
  2. .env는 .gitignore에 등록 — git에 올라가지 않게 차단
  3. 권한 최소화 — 키 하나에 모든 권한 주지 말고 필요한 만큼만
  4. 사용량 한도 설정 — 사고가 나도 청구가 폭주하지 않게 월 한도를 미리 설정
  5. 주기적 회전(rotation) — 6개월·1년 단위로 새 키 발급, 옛 키 폐기

이 다섯 가지만 지켜도 일반적인 사고 시나리오 대부분을 막을 수 있다.

언제 API 키를 마주치나

API 키라는 단어는 보통 이런 상황에서 등장한다.

  • AI API 사용 시작: OpenAI·Anthropic 콘솔에서 첫 키 발급할 때
  • 자동화 도구 연결: Zapier, Make에서 새 서비스 연동할 때 키 입력
  • AI 코딩 도구 설정: Cursor·Claude Code에 본인 키를 등록해 자기 한도로 호출할 때
  • GitHub Actions·CI/CD: 빌드 자동화에서 외부 서비스를 부를 때 비밀 변수로 등록

평소엔 키를 거의 안 만지지만, 자동화·개발 단계로 들어가는 순간 거의 매주 한 번씩은 마주친다.

관련 용어

API 키를 이해했다면 함께 알아두면 흐름이 연결되는 용어들이다.

  • API(Application Programming Interface): 프로그램끼리 정보를 주고받는 약속. API 키는 그 약속에 출입 카드처럼 따라붙는다. API가 뭐야?: 프로그램끼리 대화하는 규칙 5분 정리 참고.
  • 토큰(Token): AI API 사용량 측정 단위. API 키는 신원, 토큰은 사용량. 토큰(Token) 뜻 정리 참고.
  • OAuth: API 키보다 안전한 편의 인증 방식. 짧은 만료 시간과 사용자 동의 절차가 있다.
  • 시크릿(secret): API 키, 비밀번호, 인증서 등 모든 민감한 비밀 정보를 통칭하는 단어다.

API 키는 “프로그램이 다른 서비스를 부를 때 쓰는 비밀 출입 카드”다. 한 번 노출되면 본인 계정으로 누구든 API를 호출할 수 있어서, 코드에 직접 적지 않고 환경변수·시크릿 저장소에 보관하는 게 기본이다. AI 시대에 들어 거의 모든 자동화 워크플로의 출발점이 된 만큼, 안전하게 다루는 습관이 처음부터 중요하다.


출처

#API 키#API Key#AI 용어#보안 기초