Skip to main content
control plane은 러너와 각 러너에 적용되는 정책을 관리하는 REST API를 제공합니다. 이 페이지에서는 모든 엔드포인트에 공통으로 적용되는 behavior(인증, 버전 관리, 오류 형식, 페이지 매김)를 설명합니다. 정책의 모든 필드에 대한 스키마는 정책 레퍼런스를 참조하세요. 이러한 엔드포인트를 사용하는 작업 중심의 워크스루는 샌드박스 정책 설정하기 및 러너 배포 및 관리하기를 참조하세요.

기본 URL 및 버전 관리

이것은 control plane base URL입니다. 이 URL은 이 페이지에서 설명하는 러너 엔드포인트를 호스팅하며, 이를 통해 러너를 배포하고, 각 러너에 적용할 정책을 설정하고, 상태를 쿼리할 수 있습니다. 이는 cwsandbox Python client가 샌드박스를 시작하고 명령어와 출력을 스트림하는 데 사용하는 샌드박스 data plane(Sandbox.run(), sb.exec(), 파일 오퍼레이션)과는 별개입니다. control plane 오퍼레이션은 샌드박스를 생성하는 인프라를 만들고 설정하며, data plane 오퍼레이션은 실행 중인 샌드박스와 상호 작용합니다. API 버전은 v1입니다. 하위 호환성을 유지하는 추가 변경 사항은 v1 내에서 제공됩니다. 호환성이 깨지는 변경 사항은 새 버전 접두사로 제공되며, CoreWeave는 릴리스 전에 이를 미리 공지합니다. 이전 v1beta2 API도 여전히 사용 가능하며, 프로필 템플릿과 프로필 바인딩은 이 API에서 제공됩니다. 이 기능들은 정책으로 대체되었으며 v1에는 추가되지 않습니다. 새 인테그레이션은 v1을 기준으로 구현하세요.

인증

모든 요청은 TLS를 통한 Bearer 토큰 인증을 사용합니다. [API-ACCESS-TOKEN]을 CoreWeave API 액세스 토큰으로 바꾸세요.
cloud console의 토큰 페이지에서 API 액세스 토큰을 생성하세요. 토큰은 소속된 사용자의 권한을 상속하며, 서버는 모든 요청에서 해당 권한을 강제 적용합니다. CoreWeave Sandboxes에는 다음 두 가지 ID 및 액세스 관리(IAM) 액션이 적용됩니다. 이 액션의 식별자는 소문자이며 대소문자를 구분합니다.
  • sandbox_admin: 러너를 생성, 조회, 업데이트, 삭제하고, 러너가 전달하는 정책을 설정합니다. 조회를 포함한 모든 관리형 러너 엔드포인트에 이 액션이 필요합니다. sandbox_user를 포함합니다. 레거시 v1beta2 프로필을 사용하는 러너에서는 이 액션으로 권한 있는 프로필 설정도 사용할 수 있습니다. 여기에는 권한 있는 컨테이너, 호스트 namespace, 호스트 파일 시스템 마운트가 포함됩니다. 이러한 설정을 사용하면 샌드박스가 클러스터 관리자에 준하는 노드 액세스 권한을 갖게 될 수 있습니다. v1 정책의 allow_privileged 설정은 샌드박스 격리 경계 안에서의 게스트 내부 권한을 제어합니다.
  • sandbox_user: 샌드박스를 생성하고 운영하며, 샌드박스의 네트워크 설정도 관리할 수 있습니다. 관리형 러너 관리에 대한 액세스 권한은 부여하지 않습니다.
이러한 액션을 부여하려면 cloud console의 Access Policies 페이지에서 Sandbox Admin 또는 Sandbox User 역할을 할당하세요. Sandbox Admin 역할은 sandbox_admin을, Sandbox User 역할은 sandbox_user를 부여합니다. 역할 설명은 IAM 역할을 참조하세요. Access Policies의 작동 방식과 단계별 부여 흐름에 대한 배경 정보는 ID 및 액세스 관리 (IAM) 및 Manage Access Policies를 참조하세요. 토큰에 대한 자세한 내용은 API 액세스 토큰 관리를 참조하세요. 인증되지 않은 요청은 google.rpc.Status 형태의 본문과 함께 401 Unauthenticated를 반환합니다. CoreWeave Intelligent CLI (cwic)는 이러한 REST 엔드포인트를 래핑합니다. CLI 사용자는 cwic auth login으로 한 번 인증하며, cwic는 토큰을 로컬 cwic 설정에 저장합니다. CLI 워크플로는 샌드박스 정책 설정를 참조하세요.

콘텐츠 유형

모든 요청 및 응답 본문은 JSON 형식입니다.
API는 connectrpc를 통해 HTTP/2로 실행되지만, 표준 curl 또는 fetch 스타일 클라이언트가 투명하게 작동합니다. gRPC 클라이언트는 필요하지 않습니다. 이 엔드포인트의 기반이 되는 게시된 Protobuf 정의와 이를 바탕으로 생성된 SDK는 Protobuf를 참조하세요. NetworkConfig API는 샌드박스 데이터 영역의 https://api.cwsandbox.com에서 제공되며 sandbox_user를 사용합니다. 샌드박스에 적용할 네트워크 규칙을 변경하려면 이 API를 사용하고, 이러한 규칙의 허용 범위를 제한하는 러너 정책을 설정하려면 컨트롤 플레인을 사용하세요.

리소스 패밀리

control plane은 managed runner를 관리용 리소스로 노출합니다. 정책은 독립적으로 주소를 지정할 수 없습니다. 정책은 러너의 필드이므로, 러너를 가져와서 조회하고 policy로 마스킹한 러너 업데이트로 기록합니다. 쓰기 작업을 할 때마다 문서 전체가 대체됩니다. 워크플로는 Configure a sandbox policy를 참조하세요. 프로필 템플릿은 러너의 profile_bindings 필드와 함께 v1beta2 인터페이스의 /v1beta2/sandbox/profile-templates에서 계속 사용할 수 있습니다. 프로필 템플릿은 정책으로 대체되었으며, v1 모델에 포함되지 않고 앞으로도 추가되지 않습니다. 개념 모델과 게이트웨이가 런타임 요청을 중개하는 방식은 Sandboxes architecture를 참조하세요. 이 페이지에서는 엔드포인트 계약을 설명합니다.

페이지 매김

목록 엔드포인트는 커서 기반 페이지 매김을 지원합니다:
  • pageSize: 페이지 크기입니다. 기본값은 50, 최대 100입니다.
  • pageToken: 이전 페이지에서 nextPageToken으로 반환된 커서입니다. 빈 문자열은 더 이상 페이지가 없음을 의미합니다.
Paginate managed runners
CoreWeave Intelligent CLI는 cwic sandbox runner get과 같은 목록 명령어의 결과를 자동으로 페이지로 나눕니다.

업데이트 시 필드 마스크

v1 API의 관리형 러너 업데이트에서는 선택적 update_mask를 지정해 업데이트할 변경 가능한 필드를 선택할 수 있습니다. 마스크를 생략하거나 비워 두면 변경 가능한 리소스 전체가 교체됩니다. 와일드카드 *는 바이너리 Protobuf에서만 지원되며, REST updateMask 쿼리 매개변수나 JSON 요청에서는 지원되지 않습니다. 경로는 점 표기법과 snake_case 필드 이름을 사용합니다(표준 google.protobuf.FieldMask 규칙). 일반적으로 사용되는 변경 가능한 경로: REST 표면에서, 마스크를 단일 쉼표로 구분된 updateMask 쿼리 매개변수로 제공하고, 각 경로의 JSON (camelCase) 형식을 사용하며, 리소스 자체를 래퍼 없이 요청 본문으로 전송합니다:
러너의 영역과 클러스터 ID는 생성 후에는 변경할 수 없는 불변 값입니다.

러너 선호도

관리형 러너 사양은 Kubernetes 카멜 케이스 키를 사용하는 Kubernetes Affinity 객체인 spec.overrides.affinity를 허용합니다. 이 필드는 nodeAffinity, podAffinity, podAntiAffinity를 지원하며, 러너 파드에만 적용됩니다. 샌드박스 파드 배치나 노드 예산 적격성에는 영향을 주지 않습니다. 최종 확정된 deploymentSpec.affinity는 출력 전용입니다. 선호도를 업데이트하면 객체 전체가 대체됩니다. updateMask=spec.overrides.affinity와 함께 "affinity": {}를 명시적으로 지정하면 상속된 선호도를 포함한 모든 규칙이 지워집니다. 같은 마스크를 사용하면서 요청 본문에서 affinity를 생략하면 고객 재정의 값이 제거되고 플랫폼 기본값이 복원됩니다. 노드 셀렉터와 톨러레이션은 이와 별개로 유지됩니다. CLI 및 REST 예시, 스케줄링 동작, 롤아웃 확인 방법은 러너 선호도 설정을 참조하세요. 레거시 v1beta2에서 이에 해당하는 필드는 managed_spec.overrides.affinity입니다.

오류

오류는 적절한 HTTP 상태 코드와 google.rpc.Status 본문을 반환합니다.
다음 table에는 일반적인 매핑이 나와 있습니다. 검증 메시지는 안정적으로 유지되는 인터페이스의 일부이므로 최종 사용자에게 그대로 표시해도 됩니다.

멱등성

control plane API는 다음과 같은 멱등성을 보장합니다.
  • Delete* 엔드포인트는 멱등성을 가집니다. 이미 삭제된 리소스에 DELETE를 호출하면 부작용 없이 404를 반환합니다.
  • Create* 엔드포인트는 멱등성을 가지지 않습니다. 동일한 runnerId 또는 displayName을 두 번 지정하면 409 Conflict를 반환합니다. 안전하게 재시도하려면 GET으로 리소스가 이미 존재하는지 먼저 확인하세요.
  • Update* 엔드포인트는 필드 마스크를 사용하여 변경하려는 필드만 설정하면 안전하게 재시도할 수 있습니다.

Heartbeats

러너 heartbeats는 러너 liveness를 추적합니다. control plane이 liveness 윈도우 내에 heartbeat를 수신하지 못하면, 러너의 connectionStatus가 DISCONNECTED로 전환됩니다. 러너가 연결 불가능해진 시점과 control plane이 이를 반영하는 시점 사이에 최대 30초의 지연이 발생할 수 있습니다. 러너 조회 응답에서 connectionStatus와 관련 installStatus 필드를 모두 조회할 수 있습니다.

참고 항목

  • Terraform으로 러너 관리: CoreWeave Terraform 공급자로 러너를 설정, 임포트, 업데이트하는 방법을 설명합니다.
  • 샌드박스 아키텍처: 네 가지 리소스 분류 체계와 게이트웨이가 런타임 요청을 중개하는 방식을 설명합니다.
  • 정책 개요: 샌드박스가 정책에 따라 어떻게 결정되는지 설명합니다.
  • 샌드박스 정책 설정: CoreWeave Intelligent CLI 워크플로와 프로필 사양의 필드별 워크스루를 제공합니다.
  • 러너 배포 및 관리: 러너 라이프사이클에 대한 CoreWeave Intelligent CLI 및 REST 워크스루를 제공합니다.
  • 정책 레퍼런스: 프로필에 설정할 수 있는 모든 필드를 설명합니다.
  • Protobuf: 게시된 Protobuf 모듈의 위치, 각 서비스를 제공하는 호스트, 생성된 SDK의 설치 방법을 설명합니다.
마지막 수정일 2026년 11월 4일