메인 콘텐츠로 건너뛰기
작업에 필요한 것보다 더 많은 기능을 가진 에이전트는 악용을 기다리는 책임입니다. 키를 훔치거나, 주입된 지시사항으로 속이거나, 의존성 하나를 침해하면 — 그 키가 할 수 있는 모든 것이 공격자의 손에 있습니다. 이것이 과도한 권한 문제이며, 혼란된 대리인이라는 밀접하게 관련된 패턴으로 복합됩니다: 에이전트가 직접 침해되지 않고, 공격자를 대신해 합법적인 권한을 사용하도록 속습니다. 두 문제 모두 하나의 근본 원인을 공유합니다: 침해된 에이전트가 보유한 키는 수행하는 작업에 비해 너무 강력합니다. 방어는 최소 권한입니다 — 각 에이전트에게 작업이 필요한 정확한 기능만, 그 이상은 없이 제공합니다.
이 페이지는 피해 범위를 제한하는 게이트웨이 제어에 관한 것입니다. 업스트림 위협 모델 컨텍스트 — 에이전트가 고가치 목표인 이유와 인젝션 작동 방식 — 는 위협 모델에 있습니다. 위험한 개별 툴 호출을 제어하는 매칭 제어는 위험한 툴 호출을 참조하세요.

1. 에이전트를 과도하게 유능하게 만드는 것

워크스페이스의 모든 에이전트가 하나의 키를 공유하거나, 키가 한 번 발급되고 재검토되지 않을 때, 기능이 상향으로 이동합니다:
  • 제한 없는 모델 — 에이전트는 워크스페이스의 모든 모델을 호출할 수 있으며, 필요 없는 고비용이나 고성능 모델도 포함됩니다.
  • 지출 한도 없음 — 폭주 루프, 트리거된 인젝션, 또는 청구 공격이 알아채기 전에 워크스페이스 잔액을 소진할 수 있습니다.
  • 만료 없음 — 스프린트 중에 발급된 키가 에이전트가 폐기된 지 1년이 지난 후에도 여전히 유효합니다.
  • IP 제약 없음 — 자격 증명이 어디서든 작동하므로, 유출된 키에는 지리적 제한이 없습니다.
  • 툴 허용 목록 없음 — 에이전트가 기능과 무관한 것도 포함하여 모든 툴을 호출할 수 있습니다.
이 중 하나만으로도 피해 범위가 넓어집니다. 결합하면, 단일 침해 에이전트가 워크스페이스 관리자가 할 수 있는 모든 것을 할 수 있습니다 — 가장 강력한 모델 호출, 전체 잔액 소비, 모든 툴 접근.

2. 혼란된 대리인 패턴

혼란된 대리인은 과도한 권한의 특수화입니다. 에이전트가 하이재킹되지 않고; 설득됩니다. 가져온 웹 페이지, 문서, 또는 툴 결과의 프롬프트 인젝션 페이로드가 에이전트에게 공격자를 대신해 — 돈 이동, 레코드 삭제, 메시지 전송 — 합법적으로 수행할 권한이 있는 액션을 취하도록 지시합니다. 에이전트가 액션을 수행합니다. 그것은 정확히 그것을 할 권한이 있었습니다. 권한 검사가 통과됩니다. 피해가 발생합니다. 방어에는 두 가지가 함께 작동해야 합니다:
  1. 좁은 스코프 — 에이전트가 작업이 의도하지 않은 것을 하도록 속임을 당할 수 없습니다, 왜냐하면 그것을 할 권한이 전혀 없기 때문입니다.
  2. 되돌릴 수 없는 액션에 대한 인간 승인 — 승인된 스코프 내에서도, 고위험 호출은 실행 전에 사람의 확인이 필요합니다.

3. 심층 방어: 4개 레이어

OrcaRouter는 단일 API 키에서 구성되는 4개의 독립적인 제어에 걸쳐 최소 권한을 강제합니다. 에이전트에 코드 변경이 필요하지 않습니다.

레이어 1 — 범위 지정 키 (신원 + 하드 한도)

모든 에이전트는 자체 API 키를 가져야 합니다. 키는 에이전트가 요청하는 것과 무관하게 게이트웨이가 강제하는 하드 한도를 담습니다:
필드제한하는 것
model_limits이 키가 호출할 수 있는 모델의 정확한 세트. 다른 모델에 대한 요청은 게이트웨이를 떠나기 전에 거부됩니다.
allow_ips이 목록에 없는 주소의 요청은 인증 레이어에서 거부됩니다. 비어 있으면 IP 제한 없음.
credit_limit_usdUSD 단위의 누적 지출 한도. 0은 무제한. 게이트웨이는 키의 누적 지출에 대해 이것을 강제합니다.
expired_time절대 만료 타임스탬프. -1은 키가 만료되지 않음. 에이전트의 배포 라이프사이클로 설정하세요.
environment키 구성과 감사 로그 필터링을 위한 레이블 (prod, staging, dev).
이 한도는 키 레벨에서 강제됩니다 — 어떤 정책보다, 어떤 모델 호출보다 먼저. 이것이 가장 바깥쪽 피해 범위 경계입니다.

레이어 2 — Firewall 정책 (툴 허용 목록)

firewall_policy_id를 통해 키에 firewall 정책을 첨부하세요. 정책은 그 키가 발행하는 모든 툴 호출을 제어합니다:
  • 에이전트가 합법적으로 사용하는 툴 이름을 허용하는 규칙을 작성하세요 (툴 이름 glob이 지원됩니다 — 예: db.query*).
  • 정책의 default_verdict를 **deny**로 설정하여 명시적으로 나열되지 않은 모든 것이 차단되게 하세요.
  • 허용된 툴도 제한하는 인자 조건부를 추가하세요 — 예: database 인자가 특정 스키마에 매칭될 때만 db.query를 허용.
Firewall 첨부가 없는 키는 워크스페이스 기본 정책으로 폴백합니다. 좁은 툴 필요가 있는 에이전트의 경우, 워크스페이스 기본에 의존하는 것보다 엄격한 정책이 있는 명시적 첨부가 항상 더 낫습니다. 전체 매칭 언어는 Firewall 규칙을 참조하세요.

레이어 3 — 고위험 액션에 대한 인간 승인 (pending_approval)

되돌릴 수 없거나 고가치의 툴 호출에 대해 — 결제 디스패치, 레코드 삭제, 이메일 전송 — pending_approval 규칙을 추가하세요. 흐름:
  1. 에이전트가 툴 호출을 발행합니다. Firewall이 그것을 보류하고 승인 id를 담은 “보류” 응답을 반환합니다. 호출이 툴에 도달하지 않습니다.
  2. 검토자가 아웃-오브-밴드로 승인하거나 거부합니다 — 콘솔에서 (Developer+) 또는 자체 승인 시스템으로의 HMAC 서명 웹훅.
  3. 에이전트가 승인 id를 폴링합니다. 승인되면, 일회용 X-OrcaRouter-Firewall-Approval 헤더로 원래 호출을 재제출합니다. 게이트웨이가 정확히 한 번 통과시킵니다.
혼란된 대리인은 스코프가 유효하더라도 여기서 막힙니다: 사람이 액션이 의도적임을 확인한 후에 실행됩니다.

레이어 4 — 런당 비용 한도 (cap_cost)

cap_cost 규칙은 에이전트 런의 누적 지출이 규칙당 한도 (센트)를 초과하면 모든 툴 호출을 거부합니다. 이것은 다음에 대한 회로 차단기입니다:
  • 인젝션에 의해 트리거된 폭주 루프.
  • 사람이 알아채기 전에 지출을 유도하는 청구 공격.
  • 다단계 플랜의 우발적 재귀.
cap_cost는 키 수명 수준이 아닌 런 수준에서 작동합니다 — 따라서 에이전트 호출당 재설정되며, 단일 오작동 런이 키의 credit_limit_usd 한도를 소진할 수 없습니다.

4. 잘 범위 지정된 에이전트 키 — 예시

gpt-4o-mini를 사용하여 고객 티켓을 요약하고 읽기 전용 복제본을 쿼리하는 에이전트는 다음과 같아야 합니다:
  • model_limits: ["openai/gpt-4o-mini"] — 더 유능하거나 비싼 모델로 에스컬레이션할 수 없습니다.
  • allow_ips: 워커 풀의 egress CIDR — 다른 곳에서는 키가 비활성입니다.
  • credit_limit_usd: 작업의 예상 비용에 맞는 주간 한도, 여유를 포함 — 예: 5.00.
  • expired_time: 스프린트 또는 배포 기간의 끝 — 수동 정리 없이 키가 자동 만료됩니다.
  • environment: "prod" — 로그 필터와 이상 탐지 뷰에 나타납니다.
  • guardrail_id: 이 에이전트의 데이터 민감도로 범위 지정된 guardrail (PII 마스킹, 출력에 시크릿 없음).
  • firewall_policy_id: db.query*ticket.read*만 허용 목록으로, 기본 판정 deny인 정책.
이 에이전트가 주입된 지시사항을 통해 데이터를 유출하도록 속임을 당할 때, 피해 범위는 다음과 같습니다: 하나의 모델, 하나의 IP 범위, 하나의 툴 네임스페이스, 하나의 비용 한도. 워크스페이스의 나머지는 영향을 받지 않습니다.
is_firewall_gateway는 키를 MCP 디스패치 및 evaluate-hook 경로의 게이트웨이 범위 토큰으로 표시합니다. 프로그래매틱으로 firewall을 구동하는 에이전트에만 이것을 생성하세요 — 일반 추론 트래픽에는 절대 사용하지 마세요. 추론 경로의 게이트웨이 키는 범용 키가 절대 도달해서는 안 되는 경로를 노출합니다. is_firewall_gateway 활성화는 **Admin+**가 필요합니다.

5. 필요한 역할

액션최소 역할
모든 키, 정책, 또는 firewall 이벤트 읽기Member
키, firewall 정책, 규칙 생성 또는 편집Developer
콘솔에서 보류된 툴 호출 승인Developer
키에서 is_firewall_gateway 활성화Admin

6. 다른 위협과의 관계

과도한 권한은 거의 모든 다른 에이전트 위협의 조력자입니다:
  • 위험한 툴 호출 — 엄격한 툴 허용 목록이 있는 키는 인젝션이 성공하더라도 나열되지 않은 툴을 강제로 호출할 수 없습니다.
  • 프롬프트 인젝션 — 스코프가 인젝션이 할 수 있는 피해를 제한합니다; 승인 게이트가 인젝션이 트리거하려는 되돌릴 수 없는 액션을 차단합니다.
  • 위협 모델 — 과도한 권한이 다른 벡터와 어디에 위치하는지 보여주는 전체 공격 표면 맵.
최소 권한은 인젝션을 방지하지 않습니다. 인젝션이 달성할 수 있는 것을 줄입니다.

범위 지정 키 & 정책

전체 키 필드 레퍼런스, 해석 순서, 워크스페이스 경계 모델.

Firewall

정책 작성, 판정, HITL 승인 흐름, 전체 API 레퍼런스.
최소 권한 — 에이전트당 하나의 좁은 키, 엄격한 툴 허용 목록, 지출 한도, 되돌릴 수 없는 액션에 대한 인간 승인 — 이 과도한 권한 LLM 공격과 혼란된 대리인 패턴에 대한 기본 방어입니다.