1. Три области
Три концепции вложены друг в друга:- Рабочее пространство — граница тенанта. Каждый участник рабочего пространства разделяет один и тот же каталог guardrail и политик firewall. Ничего не пересекает границы рабочих пространств — политика, созданная в рабочем пространстве A, невидима для рабочего пространства B.
- Политика — именованный набор правил в рамках рабочего пространства (guardrail или политика firewall). Редактирование политики вступает в силу для каждого привязанного к ней ключа при следующем запросе, без передеплоя.
- Ключ — идентификация плюс привязки. Ключ несёт собственные ограничения и указывает на политики, которые им управляют.
2. Что несёт ключ
Каждый API-ключ — это пакет ограничений и привязок. Устанавливайте их в редакторе ключей (/console/token) — создание или редактирование ключей требует роли
Developer или выше.
| Поле | Что ограничивает | Минимальная роль для установки |
|---|---|---|
model_limits | Ограничивает ключ конкретным списком моделей — любой вызов вне списка отклоняется до выхода из шлюза. | Developer |
allow_ips | Список разрешённых IP. Запросы с любого незарегистрированного адреса отклоняются на уровне аутентификации. Пустой означает, что все IP разрешены. | Developer |
credit_limit_usd | Лимит расходов в USD. 0 означает неограниченно. Шлюз применяет это против пожизненных расходов ключа. | Developer |
expired_time | Абсолютная временная метка срока действия. -1 означает, что ключ никогда не истекает. | Developer |
environment | Произвольная метка (например, prod, staging, dev) для организации ключей и фильтрации логов. | Developer |
guardrail_id | Привязывает конкретный guardrail к этому ключу. Каждый вызов этого ключа проверяется этим guardrail’ом. | Developer |
firewall_policy_id | Привязывает конкретную политику firewall к этому ключу. Каждый вызов инструмента этого ключа оценивается этой политикой. | Developer |
is_firewall_gateway | Помечает ключ как токен с областью шлюза — требуется для вызова маршрутов диспетча MCP и хука evaluate. Обычный ключ получает 403 на этих маршрутах. Чтение открытого текста ключа шлюза требует Admin. | Admin (для включения и чтения открытого текста) |
3. Порядок разрешения политик
Для любого запроса OrcaRouter разрешает активный guardrail и политику firewall независимо:- Привязка ключа — если ключ имеет явный
guardrail_id(илиfirewall_policy_id) и эта политика существует и включена, она применяется. - Default рабочего пространства — если у ключа нет привязки, применяется
включённый guardrail или политика рабочего пространства с
is_default. - Нет применения — если ни то, ни другое не установлено, запрос проходит без проверки содержимого или применения вызовов инструментов.
Две плоскости отличаются, когда привязанная политика отключена:
- Отключённая или удалённая привязка guardrail означает, что ключ получает нет guardrail — отключение его является выключателем; оно не откатывается к default’у рабочего пространства.
- Отключённая привязка firewall откатывается к default-политике firewall рабочего пространства — поэтому отключение привязки firewall возвращает ключ к default’у рабочего пространства, а не отключает применение.
0/unset) привязка всегда откатывается к default’у рабочего
пространства; ни то ни другое не установлено — означает нет применения.4. Ключи с минимальными полномочиями — один ключ на агента
Самая безопасная конфигурация — дать каждому агенту собственный узко ограниченный ключ вместо использования одного ключа рабочего пространства для всех вызывающих. Хорошо ограниченный ключ для агента, который вызывает только одну модель и выполняет запланированные задачи, может выглядеть так:model_limits:["openai/gpt-4o-mini"]— агент не может переключиться на более дорогую или более мощную модель.allow_ips: CIDR исходящего трафика планировщика — ни один другой источник не может предъявить этот ключ.credit_limit_usd: недельный потолок бюджета — бесконечный цикл не может исчерпать баланс рабочего пространства.expired_time: конец спринта или жизненного цикла развёртывания — ключ автоматически истекает и не может быть повторно использован.guardrail_id: guardrail, специфичный для чувствительности данных этого агента — жёстче, чем default рабочего пространства.firewall_policy_id: политика, в which-список разрешённых входит только набор инструментов, которые агент законно использует.
Создавайте ключи с областью шлюза (
is_firewall_gateway) только для поверхности
диспетча MCP или хука evaluate — никогда для общего вывода. Ключ шлюза на пути
вывода даёт вызывающему доступ к маршрутам /api/v1/firewall/*, что является
более широкой возможностью, чем ему нужно. Один ключ, одна цель.5. Где создаются политики
Guardrails и политики firewall оба ограничены рабочим пространством и разделяются между всеми участниками, но изменения требуют правильной роли:- Читать любой guardrail, политику или ключ — любой участник рабочего пространства.
- Создавать или изменять guardrails, политики firewall, MCP-серверы, уровни автономии, действия подтверждений и обычные API-ключи — Developer+.
- Включать
is_firewall_gatewayна ключе; читать открытый текст ключа шлюза — Admin+.
6. Дальнейшие шаги
Базовый уровень Secure Agents
Рекомендуемая стартовая позиция — один переключатель уровня автономии,
затем настройка из реального трафика.
Получите API-ключ
Создайте свой первый ключ и привяжите guardrail или политику firewall
в консоли.
