메인 콘텐츠로 건너뛰기
OrcaRouter에 도달하는 모든 요청은 API 키를 담습니다. 그 키는 단순한 자격 증명이 아닙니다 — 그것은 범위 선언입니다: 호출자가 사용할 수 있는 모델, 그것을 제시할 수 있는 IP, 지출할 수 있는 금액, 그리고 트래픽을 관리하는 정확한 guardrail과 firewall 정책. 이 페이지는 3단계 계층과 요청 시점에 정책이 어떻게 해석되는지 설명합니다.

1. 세 가지 범위

세 가지 개념이 서로 중첩됩니다:
  • 워크스페이스 — 테넌트 경계. 워크스페이스의 모든 멤버가 동일한 guardrail과 firewall 정책 카탈로그를 공유합니다. 워크스페이스 경계를 넘는 것은 없습니다 — 워크스페이스 A에서 작성된 정책은 워크스페이스 B에게 보이지 않습니다.
  • 정책 — 이름이 지정된, 워크스페이스 범위 규칙 세트 (guardrail 또는 firewall 정책). 정책을 편집하면 다음 요청에서 재배포 없이 그것에 연결된 모든 키에 효력이 발생합니다.
  • — 신원 플러스 연결. 키는 자체 제약을 담고 그것을 관리하는 정책을 가리킵니다.
워크스페이스가 외부 경계이고; 정책은 그 내부의 공유 리소스이고; 키는 제약과 정책을 함께 묶는 에이전트별 신원입니다.

2. 키가 담고 있는 것

각 API 키는 제한과 연결의 번들입니다. 키 에디터 (/console/token)에서 이것들을 설정하세요 — 키 생성 또는 편집은 Developer 역할 이상이 필요합니다.
필드제한하는 것설정하는 데 필요한 최소 역할
model_limits키를 특정 모델 목록으로 제한합니다 — 해당 목록 밖의 모든 호출은 게이트웨이를 떠나기 전에 거부됩니다.Developer
allow_ipsIP 허용 목록. 목록에 없는 주소에서의 요청은 auth 레이어에서 거부됩니다. 비어 있으면 모든 IP가 허용됩니다.Developer
credit_limit_usdUSD 지출 한도. 0은 무제한을 의미합니다. 게이트웨이는 이것을 키의 생애 지출에 대해 강제합니다.Developer
expired_time절대 만료 타임스탬프. -1은 키가 만료되지 않음을 의미합니다.Developer
environment키를 구성하고 로그를 필터링하기 위한 자유 형식 레이블 (예: prod, staging, dev).Developer
guardrail_id이 키에 특정 guardrail을 연결합니다. 이 키가 하는 모든 호출이 그 guardrail에 의해 검사됩니다.Developer
firewall_policy_id이 키에 특정 firewall 정책을 연결합니다. 이 키가 발행하는 모든 툴 호출이 그 정책에 의해 평가됩니다.Developer
is_firewall_gateway키를 gateway-scoped 토큰으로 표시합니다 — MCP 디스패치와 evaluate-hook 라우트를 호출하는 데 필요합니다. 일반 키는 그 라우트들에서 403을 받습니다. 게이트웨이 키 평문 읽기는 Admin이 필요합니다.Admin (활성화 및 평문 읽기)
키는 콘솔에서 마스킹되어 표시됩니다. 평문은 생성 시 한 번 표시됩니다; gateway-scoped 키는 다시 검색하는 데 Admin이 필요합니다.

3. 정책 해석 순서

모든 요청에 대해, OrcaRouter는 활성 guardrail과 firewall 정책을 독립적으로 해석합니다:
  1. 키 연결 — 키에 명시적 guardrail_id (또는 firewall_policy_id)가 있고 그 정책이 존재하고 활성화되어 있으면, 그것이 적용됩니다.
  2. 워크스페이스 기본값 — 키에 연결이 없으면, 워크스페이스의 활성화된 is_default guardrail (또는 정책)이 적용됩니다.
  3. 강제 없음 — 둘 다 설정되지 않으면, 요청은 콘텐츠 검사나 툴 호출 강제 없이 통과됩니다.
두 플레인은 연결된 정책이 _비활성화_될 때 다르게 동작합니다:
  • 비활성화되거나 삭제된 guardrail 연결은 키가 어떤 guardrail도 없는 것을 의미합니다 — 비활성화가 오프 스위치입니다; 워크스페이스 기본값으로 폴백하지 않습니다.
  • 비활성화된 firewall 연결은 워크스페이스 기본 firewall 정책으로 폴백합니다 — 따라서 firewall 연결을 비활성화하면 키가 워크스페이스 기본값으로 되돌아가고, 강제가 꺼지지 않습니다.
누락된 (0/설정되지 않은) 연결은 항상 워크스페이스 기본값으로 폴백합니다; 둘 다 설정되지 않으면 강제가 없습니다.
언제든지 워크스페이스당 최대 하나의 guardrail과 하나의 firewall 정책만 기본값이 될 수 있습니다. 새 기본값을 프로모트하면 동일한 트랜잭션에서 이전 것이 강등됩니다 — 실수로 두 개의 기본값을 가질 수 없습니다.

4. 최소 권한 키 — 에이전트당 하나의 키

가장 안전한 구성은 모든 호출자에 걸쳐 단일 워크스페이스 키를 공유하는 대신 각 에이전트에 자체 좁게 범위 지정된 키를 제공하는 것입니다. 하나의 모델만 호출하고 예약된 작업을 실행하는 에이전트에 대한 잘 범위 지정된 키는 다음과 같을 수 있습니다:
  • model_limits: ["openai/gpt-4o-mini"] — 에이전트가 더 비싸거나 더 유능한 모델로 전환할 수 없습니다.
  • allow_ips: 스케줄러의 egress CIDR — 다른 소스는 이 키를 제시할 수 없습니다.
  • credit_limit_usd: 주간 예산 한도 — 폭주 루프가 워크스페이스 잔액을 소진할 수 없습니다.
  • expired_time: 스프린트 또는 배포 수명 주기의 끝 — 키가 자동으로 만료되고 재사용될 수 없습니다.
  • guardrail_id: 이 에이전트의 데이터 민감도에 특화된 guardrail — 워크스페이스 기본값보다 엄격.
  • firewall_policy_id: 이 에이전트가 합법적으로 필요한 툴만 허용 목록에 있는 정책.
이 에이전트가 프롬프트 인젝션을 통해 침해될 때, 피해 범위가 제한됩니다: 하나의 모델, 하나의 IP 범위, 지출 한도까지, firewall 정책이 허용하는 툴만 호출할 수 있습니다. 워크스페이스의 나머지는 영향을 받지 않습니다.
gateway-scoped 키 (is_firewall_gateway)는 MCP 디스패치 또는 evaluate-hook 표면에만 생성하세요 — 일반 추론 트래픽에는 절대 사용하지 마세요. 추론 경로의 게이트웨이 키는 호출자에게 /api/v1/firewall/* 라우트에 대한 접근을 제공하며, 이는 필요한 것보다 더 넓은 기능입니다. 하나의 키, 하나의 목적.

5. 정책이 작성되는 곳

Guardrails와 firewall 정책은 모두 워크스페이스 범위이고 모든 멤버에게 공유되지만, 변경은 올바른 역할을 요구합니다:
  • 읽기 모든 guardrail, 정책, 또는 키 — 모든 워크스페이스 멤버.
  • 생성 또는 변경 guardrails, firewall 정책, MCP 서버, 자율성 수준, 승인 액션, 일반 API 키 — Developer+.
  • is_firewall_gateway 활성화 키에서; 게이트웨이 키 평문 읽기 — Admin+.
워크스페이스가 협업 경계입니다: 모든 사람이 정책 카탈로그를 볼 수 있고; Developer 이상만 변경할 수 있고; Admin만 게이트웨이 자격 증명을 발급할 수 있습니다.

6. 다음 단계

에이전트 보안 기준선

권장 시작 자세 — 자율성 수준 스위치 하나, 그 다음 실제 트래픽에서 조정.

API 키 받기

첫 번째 키를 생성하고 콘솔에서 guardrail 또는 firewall 정책을 연결합니다.
범위가 제어 스택의 기반입니다. 각 키의 범위가 좁을수록, 하나의 에이전트가 침해될 경우 피해 범위가 작아집니다 — 그리고 각 에이전트가 무엇을 할 권한이 있었는지 보여주는 감사 추적이 더 명확해집니다.