본문으로 건너뛰기

API 키 관리와 폐기

CLI와 MCP와 GitHub Action은 API 키로만 인증합니다, 키 형식, 권한, 만료, 발급과 폐기, 안전하게 보관하는 방법을 설명합니다

CLI와 MCP 서버와 GitHub Action은 API 키로만 인증합니다, 키는 워크스페이스 하나에 묶이고 권한은 실행과 조회(run) 또는 조회만(read) 두 가지입니다

키 형식

xci_live_<43자>_<6자>
  • 앞 43자는 무작위, 뒤 6자는 CRC32 체크섬입니다, 서버는 데이터베이스를 읽기 전에 체크섬부터 확인합니다
  • 서버는 키의 SHA-256 해시만 저장합니다, 발급 응답에서 한 번 보인 뒤에는 어디서도 다시 볼 수 없습니다
  • 목록에는 앞 12자와 뒤 4자만 보입니다(예 xci_live_3fK…Pm81)
  • 옛 xeno_ 접두사 키는 종료되었고 401 invalid_api_key입니다

권한

권한콘솔 표시할 수 있는 일
run실행과 조회잡 제출과 취소, 업로드, 배치와 레시피 쓰기, 그리고 아래 조회 전부
read조회만잡, 로그, 결과물, 사용량, 비용, 한도, 환경 조회, GET 요청만

read 키로 GET이 아닌 요청을 보내면 403 insufficient_permission입니다, 어떤 키로도 결제, 충전, 키 발급, 멤버와 워크스페이스 관리는 할 수 없습니다(403 console_only), 키는 자기 워크스페이스 밖을 볼 수 없습니다

키 발급하기

소유자와 관리자는 모든 워크스페이스에서, 개발자는 배정된 워크스페이스에서만 발급합니다

  1. 콘솔 API 키에서 키 추가를 누릅니다
  2. 키 이름(80자 이하)을 넣고 워크스페이스를 고릅니다
  3. 권한에서 실행과 조회 또는 조회만을 고릅니다
  4. 만료에서 만료 없음, 30일, 90일, 1년 중 하나를 고릅니다
  5. 키 생성을 누르면 키 값이 한 번 보입니다, 환경 변수로 쓰기로 복사해 안전한 곳에 넣습니다

API로는 API 키 발급을 씁니다

curl -X POST "https://xenoci.com/api/runner/v1/organizations/org_7Kq2m9ZtP3/workspaces/wrk_3fK9Qm2Zp8/api-keys" \
  --cookie "xci_console=$SESSION" \
  -H "Origin: https://xenoci.com" \
  -H "Content-Type: application/json" \
  -d '{"name":"ci","permission":"run","expires_in_days":90}'

키 쓰기

어디서방법
CLI환경 변수 XENOCI_API_KEY 또는 xenocast config set api-key로 저장, 환경 변수가 저장된 키보다 우선
MCP 서버MCP 설정의 env에 XENOCI_API_KEY, 또는 CLI가 저장한 키를 그대로 사용
GitHub Action저장소 시크릿 XENOCI_API_KEY를 with: api-key로 전달
직접 호출Authorization: Bearer xci_live_… 헤더
printf '%s' 'xci_live_…' | xenocast config set api-key
xenocast whoami

xenocast whoami는 키의 조직, 워크스페이스, 권한을 보여 줍니다, 키 값 자체는 어떤 출력에도 나오지 않습니다

키 목록 보기

콘솔 API 키 화면에는 키마다 이름, 워크스페이스, 권한, 생성일, 마지막 사용, 만료, 이번 달 비용이 보입니다, 마지막 사용 시각은 1분 단위로 기록됩니다

상태뜻
활성쓸 수 있는 키
만료됨만료 시각이 지난 키, 401 invalid_api_key
폐기됨폐기한 키, 401 invalid_api_key (공개 유출 자동 폐기면 401 api_key_revoked_leaked)

키 폐기하기

  1. API 키에서 키의 작업 → 폐기를 누릅니다
  2. 폐기는 즉시 적용됩니다, 그 뒤의 요청은 401 invalid_api_key입니다
  • 그 키로 이미 시작한 잡은 끝까지 돕니다, 멈추려면 잡을 따로 취소하세요
  • 폐기한 키는 되살릴 수 없고 목록에서도 지워지지 않습니다(사용량 기록이 키를 가리킵니다)
  • 워크스페이스를 보관하면 그 워크스페이스의 키가 모두 자동으로 폐기됩니다

API로는 API 키 폐기를 씁니다

안전하게 쓰기

  • 키는 CI 시크릿 저장소나 키체인에만 두고 저장소에 커밋하지 마세요, 공개된 곳에서 발견된 키는 자동으로 폐기될 수 있습니다(키 유출 대응)
  • 용도마다 키를 나누세요, 예를 들어 CI용 run 키와 대시보드용 read 키
  • 만료를 두고 주기적으로 새 키로 바꾸세요, 바꿀 때는 새 키를 먼저 넣고 옛 키를 폐기합니다
  • 한 키의 요청이 10분에 1,000건을 넘으면 소유자와 관리자에게 급증 알림 메일이 갑니다

다음 단계