API 키가 노출됐다면? 먼저 폐기하고 사용 내역 확인하기

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

읽는 시간 5분Sume
전체 글

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은 나타나지 않습니다.

Sume의 Jobs, Usage, 실행과 결과 (영문) 문서와 API 레퍼런스, 현재 대시보드·API 코드 기준, 2026-09-27 확인.
확인할 곳보여 주는 것한계
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}/runsFormat 하나의 실행, 최신순여러 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 키를 써도 되나요?에서 다룹니다.

출처

관련 글

개발자 카테고리의 다른 글

개발자 글 전체 보기

작성자 Sume