Всё управление политиками происходит в консоли (или через управляющие
маршруты
/api/workspace/firewall/*, которые аутентифицируются вашей сессией /
access-токеном — не ретрансляционным ключом sk-orca-…). Только вызовы
вашего агента /v1/* используют ретрансляционный ключ. Создание,
редактирование и установка default’ом политики — действия Developer+;
чтение списка политик и его version открыто каждому Member.1. Ответвите свою позицию во вторую политику
Нет вердикта «fork» или кнопки копирования — имя политики уникально на рабочее пространство, так что паттерн — поднять вторую, независимо версионируемую политику и расходиться с ней свободно, не трогая оригинал. Два способа её засеять:Создайте новую политику, затем создайте её правила
Откройте Security → Firewall → Policies → New policy. Новая политика
создаётся без правил и с выбранным вами
default_verdict — создайте
её правила в редакторе (или скопируйте несколько из исходной политики
вручную). Дайте ей уникальное на рабочее пространство имя (например,
prod-firewall рядом с staging-firewall).Или примените шаблон use-case
Галерея Templates (
POST /api/workspace/firewall/templates/apply)
создаёт одну новую политику плюс все её правила в одной транзакции —
Coding, Support, RAG, Data, DevOps, Browser или Baseline. Быстрее, чем
создание вручную, когда шаблон совпадает.2. Version, который увеличивается при каждом обновлении
Каждая политика firewall имеет целочисленныйversion. Он начинается с
1, когда политика создана, и увеличивается на один при каждом обновлении —
правка правила, изменение default-вердикта, переключение
включения/отключения, переключение shadow-режима. Он монотонен и никогда не
сбрасывается.
version не управляет кешем; это монотонный счётчик
изменений, который вы считываете обратно. Когда вы сохраняете политику и хотите
подтвердить, что изменение живое, перечитайте политику и проверьте, что
version продвинулся.
version политики — счётчик изменений, не точка восстановления. Он говорит
вам, что политика изменилась, и позволяет шлюзу распространить правку — это не
diff по версиям и не откат. Полная версионированная история с diff и откатом в
один клик — эта возможность живёт на Guardrails:
GET /api/guardrail/:id/history, …/history/diff и
POST /api/guardrail/:id/revert (revert — Developer+). Для политик firewall
ваш аудит-трейл и сохранение понижённой known-good политики в списке — это то,
чем вы сохраняете точку восстановления — см. §5.3. Задайте и переместите default рабочего пространства
Рабочее пространство может пометить одну политику как default. Каждый ключ без собственногоfirewall_policy_id разрешается к ней
(порядок разрешения).
- Отредактируйте политику и установите её default’ом рабочего пространства. Продвижение нового default’а понижает старый в той же транзакции — никогда нет окна с двумя default’ами и никогда окна без них в середине переключения.
- Поднятие второй политики — чистый способ прокатить default вперёд: постройте новую политику, подстройте, валидируйте под shadow-режимом, затем продвиньте её. Старый default остаётся в списке, понижённый, как ваш fallback.
4. Включение, отключение и удаление
Отключить политику
Отключить политику
Переключение Enabled в «выкл» останавливает разрешение политики. Но
помните о firewall fall-through: ключ, чья привязанная политика отключена,
откатывается к default рабочего пространства — отключение не выводит
ключ из области firewall. Чтобы убрать ключ из применения, отвяжите его
(установите
firewall_policy_id в 0), а не просто отключайте его
политику. (Это отличается от guardrails, где отключённая привязка
разрешается в none.)Удалить политику
Удалить политику
DELETE /api/workspace/firewall/policies/:id (Developer+) удаляет политику
— но возвращает 409, если какой-либо ключ всё ещё на неё ссылается.
Сначала отвяжите или перенаправьте эти ключи, затем удаляйте. Эта защита —
причина, почему поднятие второй политики, а не переписывание на месте, —
более безопасный способ эволюционировать политику, от которой зависят живые
ключи.Имена уникальны на рабочее пространство
Имена уникальны на рабочее пространство
Имя политики уникально внутри рабочего пространства, так что второй политике
нужно новое имя. Используйте конвенцию, которая переживает жизненный цикл —
staging-firewall / prod-firewall или суффикс с датой — а не
policy-copy-2.5. Аудит-трейл
Каждое создание, обновление (которое включает продвижение default’а или переключение shadow-режима) и удаление политики пишет строку аудита — и строку рабочего пространства, и центральную admin-строку — после коммита изменения. Неудачное сохранение (дубликат имени, недействительный вердикт) не пишет ничего. Блобы правил и секреты никогда не пишутся в журнал аудита. Так что хотя политики firewall не несут собственной истории diff-and-revert, аудит-трейл говорит вам, кто изменил какую политику, когда, а монотонныйversion говорит вам, сколько раз она менялась. Сочетайте это с
сохранением понижённой, known-good политики в списке, и у вас есть практический
путь восстановления.
6. Жизненный цикл с одного взгляда
| Действие | Маршрут | Роль |
|---|---|---|
| Список политик (+ version, счётчики) | GET /api/workspace/firewall/policies | Member |
| Прочитать одну политику | GET /api/workspace/firewall/policies/:id | Member |
| Создать политику (без правил) | POST /api/workspace/firewall/policies | Developer+ |
| Применить шаблон (политика + правила) | POST /api/workspace/firewall/templates/apply | Developer+ |
Обновить (увеличивает version) | PUT /api/workspace/firewall/policies | Developer+ |
| Удалить (409, если ключи привязаны) | DELETE /api/workspace/firewall/policies/:id | Developer+ |
Куда двигаться дальше
Создать и привязать
Путь первичной настройки — создайте политику и направьте на неё ключ.
Shadow-режим
Разверните новую или переназначенную default’ом политику без изменения живого трафика.
Firewall + Guardrails
Как политики действий компонуются с текстовыми guardrails — и где живёт версионированный откат.
Область: ключи, политики, рабочие пространства
Как разрешаются привязка и default рабочего пространства.
