API 키가 노출됐다면? 먼저 폐기하고 사용 내역 확인하기
노출된 API 키는 폐기하기 전까지 누구나 쓸 수 있습니다. 새 키로 교체하고 이전 키를 폐기한 뒤, 그 키의 최근 사용과 지출, 여러분의 Job을 확인하세요.

API 키가 노출되면 도난당한 것으로 간주하세요. 키를 본 사람은 누구나 여러분이 폐기하기 전까지 그 키를 쓸 수 있고, 커밋이나 채팅 메시지, 스크린샷을 지워도 이 사실은 달라지지 않습니다. 키를 폐기하고, 연동을 새 키로 옮긴 다음, 키가 노출되어 있던 동안 무엇을 했는지 확인하세요.
Sume 키라면 대체 키를 만들어 배포하고 GET /v1/me로 확인한 뒤 대시보드에서 노출된 키를 폐기하고, 이어서 그 키의 최근 사용과 지출, 여러분의 Job과 실행을 살펴본다는 뜻입니다. Sume 관련 내용은 2026-09-27에 확인한 인증, 웹훅 검증, Job과 결과 (영문) 문서에서, 따로 밝힌 부분은 현재 API와 대시보드 코드에서 가져왔습니다. 평소의 키 교체는 Sume API 키 동작 방식에서 다룹니다.
앱을 멈추지 않고 노출된 API 키를 폐기하려면 어떻게 하나요?
Sume 문서도 이 순서를 안내하며, 로그나 채팅 기록에 나타난 키는 모두 교체하라고 말합니다.
- API 키 페이지에서 새 키를 만드세요. 대시보드는 키를 만들 때만 전체 시크릿을 보여 주므로, 곧바로 시크릿 매니저에 저장하세요.
- 이전 값이 있던 곳마다 새 값으로 바꾸되, 코드가 아니라 시크릿 저장소에서 바꾸세요.
- 새 키로
GET /v1/me를 호출하세요. 이 호출은 키와 그 키가 해석되는 워크스페이스를 확인하고, id, 이름, 접두사, 스코프 같은 키 메타데이터를 반환합니다. 시크릿은 절대 반환하지 않습니다. - 노출된 키를 폐기하세요. 그 뒤로 이 키에는
401이 돌아갑니다. Sume가 키가 없거나, 형식이 잘못됐거나, 폐기된 경우에 쓰는 상태 코드입니다. 현재 API 코드는 키 조회 결과를 기본적으로 최대 15초 동안 캐시하므로, 폐기한 뒤에도 이전 키가 그 시간만큼은 계속 동작할 수 있습니다. - 누군가 지금 이 키로 돈을 쓰고 있다면 먼저 폐기하고, 여러분의 앱이 잠깐 멈추는 것은 감수하세요.
curl https://api.sume.com/v1/me \
-H "Authorization: Bearer $SUME_API_KEY"노출된 키로 다른 사람이 무엇을 할 수 있나요?
여러분의 돈을 쓸 수 있습니다. Sume 키는 워크스페이스 범위이며, 문서는 이를 분명히 적어 둡니다. 키는 여러분의 크레딧을 쓰고, 키를 가진 사람은 누구나 여러분이 소유한 모든 Format을 상한까지 실행할 수 있습니다.
웹훅 서명 시크릿에도 닿을 수 있습니다. account:read가 있는 키는 GET /v1/webhooks/signing-secret에서 시크릿을 읽을 수 있고, account:write가 있는 키는 시크릿을 교체할 수 있습니다. 시크릿을 가진 사람은 여러분의 수신기가 받아들일 가짜 전달에 서명할 수 있으므로, 노출된 키에 account:read가 없었다고 확신할 수 없다면 시크릿도 교체하세요(웹훅 → 시크릿 교체). 교체 후 24시간 동안 Sume는 모든 전달을 새 시크릿과 이전 시크릿 모두로 서명합니다. 문서에 따르면 이 기간 안에 두 번 교체하면 두 단계 전의 시크릿(유출된 시크릿)이 즉시 폐기되며, 유출을 실제로 멈추는 것이 바로 이 동작입니다. 그런 다음 최신 시크릿을 배포하세요. 먼저 수신기가 서명 헤더의 sume-v1= 항목 중 어느 것이 일치해도 수락하는지 확인하세요. 헤더 전체를 비교하는 수신기는 이 기간의 모든 전달에서 실패합니다.
노출된 키가 무엇을 했는지 어떻게 확인하나요?
대시보드에서 시작하세요. 대시보드는 작업을 키와 연결할 수 있지만 API는 그러지 못합니다. API에서는 Job 행과 사용량 행에 키 ID와 접두사가 빠져 있으므로 시간으로 판단해야 합니다. 유출과 폐기 사이에 여러분의 시스템이 시작하지 않은 것은 모두 의심 대상입니다.
팀 워크스페이스라면 노출된 키를 만든 계정(API 키 페이지의 생성자 열)으로 확인하세요. 현재 코드는 Jobs 페이지와 API 모두에서 각 멤버에게 본인의 Job만 보여 주므로, 다른 멤버의 키로 제출한 Job은 나타나지 않습니다.
| 확인할 곳 | 보여 주는 것 | 한계 |
|---|---|---|
| API 키 페이지, 최근 사용 | 키가 마지막으로 요청을 인증한 날짜 | 날짜만 표시. 현재 API 코드는 최대 5분에 한 번 갱신 |
| API 키 페이지, 이번 달 지출 | 이번 달(달력 기준)에 그 키로 확정된 지출 | 에이전트 실행과 대시보드 세션은 키 없이 기록됨 |
| Usage 페이지, API 키 필터 | 그 키에 청구된 사용량 이벤트 | 키는 마스킹된 시크릿의 앞부분인 접두사로 표시됨 |
| Jobs 페이지 | 각 Job 상세에 그 Job을 제출한 API 키 접두사가 표시됨 | 현재 코드에서는 팀 멤버가 본인의 Job만 봄 |
GET /v1/jobs, GET /v1/usage | 최신순 Job 목록(status로 필터), job_id가 담긴 사용량 행 | auth_source에 API 키 ID와 접두사가 없음 |
GET /v1/formats/{handle}/{slug}/runs | Format 하나의 실행, 최신순 | 여러 Format을 아우르는 실행 목록은 없음 |
키를 폐기하면 그 키가 이미 시작한 Job도 멈추나요?
폐기는 그 키의 다음 요청부터 거부합니다. Sume 문서에는 폐기가 이미 수락된 작업을 취소한다는 설명이 없으므로, 원치 않는 작업은 노출된 키와 같은 계정의 새 키로 직접 멈추세요.
- 생성 Job은 생성이 시작되기 전에만
POST /v1/jobs/{id}/cancel로 취소됩니다. 그 뒤에는 API가409 job_generation_already_started로 응답하고 Job은 끝까지 실행되므로,status=queued인 Job부터 조회하세요. - Format 실행은
POST /v1/format-runs/{run_id}/cancel로 취소합니다. 취소 전에 완료된 생성은 그대로 과금됩니다. - 취소별 경로와 응답은 AI 영상 생성 Job이나 실행을 취소하는 방법에 정리되어 있습니다.
API 키가 다시 유출되지 않게 하려면 어떻게 하나요?
Sume API 키 동작 방식의 보관 규칙을 따르세요. 키는 서버와 시크릿 저장소에만 두고, 프론트엔드 JavaScript, 모바일 앱, 지원 티켓, 스크린샷에는 절대 넣지 않습니다. 다음 두 가지 습관도 다음 유출의 피해 범위를 줄여 줍니다.
- 키를 채팅에 붙여 넣지 마세요. Sume의 MCP 빠른 시작 문서도 같은 말을 합니다.
- 서비스마다 키를 따로 주세요. 그러면 유출이 한 번 일어나도 폐기도 한 번이면 되고, 대시보드의 키별 기록이 호출자 하나를 가리킵니다. 키를 나누면 무엇이 분리되고 무엇이 분리되지 않는지는 여러 사람이 같은 API 키를 써도 되나요?에서 다룹니다.
출처
관련 글
개발자 카테고리의 다른 글
- 무료 웹훅 테스터: 코딩 전에 웹훅이 보내는 내용 보기
무료 웹훅 테스터는 공개 HTTPS URL을 주고, 들어온 요청마다 헤더와 본문을 보여 줍니다. Sume의 테스트 보내기(Send test)를 그 URL로 보내면 서명된 페이로드를 볼 수 있습니다.
- AI 영상 생성을 코드로 자동화하는 방법
AI 영상 생성을 자동화하려면 잘 나오는 브리프를 레시피로 저장하고, 이벤트·목록·스케줄에 맞춰 코드에서 시작한 뒤, 완성된 영상은 웹훅으로 받으세요.
- AI 영상 생성 API 고르는 법: 12가지 체크리스트
AI 영상 생성 API는 Job, 재시도, 웹훅, 지출 상한, 실패, 출력물을 어떻게 다루는지를 보고 고르세요. 항목마다 Sume의 답을 붙인 체크리스트입니다.
- Claude Code에서 MCP 서버 인증이 필요할 때 해결법
Claude Code는 해결하지 못한 401이나 403을 받은 MCP 서버를 인증 필요로 표시합니다. 다시 로그인하는 방법과 API 키가 더 알맞은 경우를 정리했습니다.
작성자 Sume