메인 콘텐츠로 건너뛰기
에이전트가 열두 개의 MCP 툴에 걸쳐 풀려나면, 사후에 중요한 질문은 결코 “이 하나의 툴이 안전한가”가 아닙니다 — 그것은 “에이전트가 실제로 무엇을 호출했고, firewall이 무엇을 결정했으며, 어떤 규칙이 그 호출을 만들었나” 입니다. OrcaRouter는 한 곳에서 그것에 답합니다: mcp 감사 로그. MCP 게이트웨이mcp 표면에서 평가하는 모든 tools/call은 firewall 이벤트로 안착합니다 — 판정, 툴, 매칭된 규칙, 그리고 그것을 발행한 에이전트 실행 — 그래서 세션을 라이브로 모니터링하거나 나중에 재구성할 수 있습니다. 이 페이지는 그 추적을 읽는 것에 대한 집중 how-to입니다. 게이트웨이 자체, 판정 어휘, 그리고 규칙 DSL은 FirewallFirewall: MCP 서버를 참조하세요.
여기의 모든 읽기는 콘솔(또는 세션/액세스 토큰을 사용하는 REST API — UserAuth)에서 구성되며 역할로 제한됩니다. /v1/* 릴레이 호출과 firewall 게이트웨이 라우트만 sk-orca-... 스타일 키를 사용합니다.

1. mcp 감사 로그가 기록하는 것

각 MCP 툴 호출은 mcp 표면에 하나의 firewall 이벤트를 생성합니다. 이벤트는 “누가 무엇을 호출했고, 정책이 무엇을 했는지”에 답하는 데 필요한 것을 담습니다 — 그리고 담지 말아야 할 것은 담지 않습니다(툴 인자는 편집됩니다, §4 참조).
verdict(allow / audit / deny / sanitize / pending_approval / observe), surface(여기서는 mcp), policy_name, rule_label, 그리고 사람이 읽을 수 있는 reason. quarantine 플래그는 소유하는 스킬이 격리 모드에 있어 보류된 호출을 표시합니다.
tool_name(네임스페이스 처리된 <server>.<tool>), 호출이 등록된 스킬에 귀속될 때의 skill_name, model_name, 그리고 token_name.
agent_run_id, conversation_id, 그리고 request_id — 세션의 호출을 그룹화하거나 한 요청에서 그것이 펼친 모든 호출로 파고드는 데 사용하는 키.
gap 플래그는 첨부된 정책이 보았지만 어떤 규칙도 매칭하지 않은 observe 모드 호출을 표시합니다 — Discovered Tools 뷰가 당신의 정책이 아직 커버하지 않는 툴을 표면화하는 데 사용하는 신호.

2. 피드 읽기

콘솔의 Events 탭이 기본 뷰입니다. 동일한 데이터를 프로그래밍 방식으로 끌어오려면, 액세스 토큰으로 이벤트를 나열하고 mcp 표면으로 필터링하세요:
# 콘솔 라우트(UserAuth). 이벤트 읽기는 Developer+가 필요.
curl "https://api.orcarouter.ai/api/workspace/firewall/events?surface=mcp&verdict=deny,pending_approval" \
  -H "Authorization: Bearer <your-access-token>"
verdict 필터는 단일 값 또는 쉼표로 구분된 집합(위의 “denies + holds” 프리셋)을 받습니다. 샘플 이벤트:
{
  "created_at": 1700000000,
  "surface": "mcp",
  "tool_name": "github.create_issue",
  "verdict": "deny",
  "policy_name": "Coding agent",
  "rule_label": "no writes to prod org",
  "reason": "rule matched: no writes to prod org",
  "agent_run_id": "run_8f3a",
  "model_name": "claude-sonnet-4-5",
  "token_name": "ci-agent"
}
한 요청의 전체 펼침 — 단일 릴레이 요청 하에 모델이 호출한 모든 툴 — 을 재구성하려면, 요청 id로 파고드세요:
curl "https://api.orcarouter.ai/api/workspace/firewall/events/by-request/<request_id>" \
  -H "Authorization: Bearer <your-access-token>"
원시 행 대신 세션 수준 롤업을 원하면, GET /api/workspace/firewall/events/aggregate?group_by=run(또는 group_by=session)을 호출하세요 — 판정별 분석, 고유 툴, 그리고 first/last-seen을 갖춘 에이전트 실행당 한 행. 트레이스 엔드포인트 (/trace/runs, /trace/by-run)는 실행의 호출 트리를 재구성합니다.

3. 서버 거버넌스 감사 행

호출별 이벤트는 에이전트가 한 일을 알려줍니다. 두 번째이자 더 작은 추적은 당신이 서버의 거버넌스에 한 일을 알려줍니다 — 그리고 그것은 러그풀 이야기가 사는 곳입니다. 프로브가 등록된 서버의 광고된 툴 세트가 드리프트했음을 발견하고, admin이 다시 기준선화하거나 격리하면, 그 결정은 워크스페이스 감사 로그에 작성됩니다:
감사 액션작성되는 때
firewall_mcp_schema_changed프로브가 라이브 툴 세트가 승인된 것에서 드리프트했음을 발견.
firewall_mcp_schema_approvedadmin이 새 툴 세트로 다시 기준선화.
firewall_mcp_schema_quarantinedadmin이 드리프트된 서버를 격리(및 비활성화).
각 행은 서버 id, 이름, 그리고 툴 개수를 담습니다 — 결코 툴 인자나 자격 증명은 아닙니다. 이것은 러그풀 방어 뒤의 포렌식 추적입니다: 월요일에 승인한 서버는 여기 행을 남기지 않고 금요일에 shell.exec 툴을 조용히 자라낼 수 없습니다.
Firewall 정책, 규칙, 그리고 설정 변경은 이것들과 함께 자체 감사 행을 씁니다. 플랫폼 admin이 변경을 하면, 그것은 중앙 admin 감사 로그 (GET /api/admin/audit-logs, admin 전용)에도 안착합니다; 일반 멤버의 편집은 워크스페이스 추적에 머뭅니다.

4. 인자는 기본적으로 편집됩니다

이벤트 스트림은 시크릿을 유출하지 않고 당신의 팀이 읽을 수 있도록 구축되었습니다. 툴 호출 인자는 결코 그대로 저장되지 않습니다 — 이벤트는 기껏해야 상한이 있고 편집된 args_summary를 담으며, 이상 징후 그룹화에 사용되는 원시 인자 해시는 결코 서버를 떠나지 않습니다.
이벤트가 그 정제된 인자 스냅샷을 담기 때문에, 이벤트, 집계, 그리고 트레이스 엔드포인트는 **Developer+**로 게이트됩니다 — Viewer 역할 멤버는 정책과 발견된 툴을 읽을 수 있지만 다른 멤버의 툴 호출 출처는 읽을 수 없습니다. 역할을 그에 맞게 계획하세요.

5. 라이브 모니터링: 이상 징후

사후에 읽는 것은 절반입니다; 다른 절반은 일어나는 동안 알려지는 것입니다. 이상 징후 피드는 MCP(그리고 다른 모든 표면)를 워크스페이스의 학습된 기준선에서 벗어나는 동작에 대해 감시합니다 — hour-of-week 프로필에 대한 비율 및 비용 급증, 재시도 루프, 그리고 새로운 툴 경로 — 그리고 당신이 규칙 하나 작성하지 않고도 그것들을 표면화합니다.
# 이상 징후 피드는 모든 Member에게 열려 있음.
curl "https://api.orcarouter.ai/api/workspace/firewall/anomalies?window=5m" \
  -H "Authorization: Bearer <your-access-token>"
시끄러운 신호는 스누즈(최대 7일)되어 영구적으로 침묵되지 않고 피드를 붐비게 하는 것을 멈출 수 있습니다. 이상 징후 읽기는 Member-개방입니다 — 이벤트 스트림보다 넓습니다 — 왜냐하면 그것은 인자가 아니라 신호를 담기 때문입니다.
피드를 shadow 모드와 짝지으세요: 타이트한 정책을 audit 전용으로 롤아웃하고, 이벤트 스트림(reason[shadow] would …로 접두된)에서 차단될 뻔한 것을 관찰한 다음, 피드가 조용해지면 승격하세요.

6. 보존 및 삭제

Firewall 이벤트는 자동으로 만료됩니다 — 그것들은 영구 저장소가 아니라 롤링 모니터링 윈도우입니다. 워크스페이스 감사 행 (§3의 서버 거버넌스 추적)은 최대 180일 보관됩니다. 그리고 사용자가 삭제되면, grace-then-scrub 사이클이 firewall 이벤트와 매칭을 통해 캐스케이드하여 떠난 사용자의 툴 호출 추적이 남지 않게 합니다.
데이터 거주지 및 보존 통제는 컴플라이언스 평면에 존재합니다. mcp 감사 로그는 워크스페이스의 보존 자세를 상속합니다; 서버별로 구성하지 않습니다.

7. 다음 단계

MCP 보안 개요

전체 MCP 거버넌스 표면 — 게이트웨이, 판정, 스킬, egress.

러그풀 방어

§3의 드리프트 이벤트, 처음부터 끝까지: 탐지, 다시 기준선화, 격리.

MCP 툴 허용 목록

감사 로그가 보여주는 것을 기본 거부 정책으로 전환합니다.

Firewall: MCP 서버

완전한 필드 및 라우트 레퍼런스.
이 모델이 처음이신가요? 이벤트가 평가 경로에서 어디서 방출되는지는 OrcaRouter가 검사하는 방식을, 깨끗한 감사 추적이 일찍 잡는 데 도움이 되는 위협은 과도한 에이전시를 참조하세요.