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), 키는 자기 워크스페이스 밖을 볼 수 없습니다
키 발급하기
소유자와 관리자는 모든 워크스페이스에서, 개발자는 배정된 워크스페이스에서만 발급합니다
- 콘솔 API 키에서 키 추가를 누릅니다
- 키 이름(80자 이하)을 넣고 워크스페이스를 고릅니다
- 권한에서 실행과 조회 또는 조회만을 고릅니다
- 만료에서 만료 없음, 30일, 90일, 1년 중 하나를 고릅니다
- 키 생성을 누르면 키 값이 한 번 보입니다, 환경 변수로 쓰기로 복사해 안전한 곳에 넣습니다
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 whoamixenocast whoami는 키의 조직, 워크스페이스, 권한을 보여 줍니다, 키 값 자체는 어떤 출력에도 나오지 않습니다
키 목록 보기
콘솔 API 키 화면에는 키마다 이름, 워크스페이스, 권한, 생성일, 마지막 사용, 만료, 이번 달 비용이 보입니다, 마지막 사용 시각은 1분 단위로 기록됩니다
| 상태 | 뜻 |
|---|---|
| 활성 | 쓸 수 있는 키 |
| 만료됨 | 만료 시각이 지난 키, 401 invalid_api_key |
| 폐기됨 | 폐기한 키, 401 invalid_api_key (공개 유출 자동 폐기면 401 api_key_revoked_leaked) |
키 폐기하기
- API 키에서 키의 작업 → 폐기를 누릅니다
- 폐기는 즉시 적용됩니다, 그 뒤의 요청은
401 invalid_api_key입니다
- 그 키로 이미 시작한 잡은 끝까지 돕니다, 멈추려면 잡을 따로 취소하세요
- 폐기한 키는 되살릴 수 없고 목록에서도 지워지지 않습니다(사용량 기록이 키를 가리킵니다)
- 워크스페이스를 보관하면 그 워크스페이스의 키가 모두 자동으로 폐기됩니다
API로는 API 키 폐기를 씁니다
안전하게 쓰기
- 키는 CI 시크릿 저장소나 키체인에만 두고 저장소에 커밋하지 마세요, 공개된 곳에서 발견된 키는 자동으로 폐기될 수 있습니다(키 유출 대응)
- 용도마다 키를 나누세요, 예를 들어 CI용 run 키와 대시보드용 read 키
- 만료를 두고 주기적으로 새 키로 바꾸세요, 바꿀 때는 새 키를 먼저 넣고 옛 키를 폐기합니다
- 한 키의 요청이 10분에 1,000건을 넘으면 소유자와 관리자에게 급증 알림 메일이 갑니다
다음 단계
- 키 유출 대응 키가 새었을 때 할 일
- 워크스페이스 키가 묶이는 단위
- API 레퍼런스 개요 인증 헤더와 오류 봉투