deny на
shell.exec, egress allow-list — и считаете, что она верна. Но включение её
против production-трафика агентов — прыжок веры: одно слишком широкое правило,
и вы блокируете вызовы, которые ваши агенты делают законно.
Shadow-режим firewall — это переключатель безопасного развёртывания. Это
флаг на уровне политики, который говорит шлюзу вычислять политику ровно так,
как она работала бы в production, логировать всё, но не блокировать ничего.
Каждый применяющий вердикт понижается до audit, а причина события получает
префикс [shadow] would …, так что вы можете точно прочитать, что политика
сделала бы, — без того, чтобы она что-либо уже сделала.
Shadow-режим — это флаг на политике, устанавливаемый в консоли (или через
управляющие маршруты
/api/workspace/firewall/policies, которые используют
вашу сессию / access-токен — не ретрансляционный ключ sk-orca-…).
Переключение его — действие Developer+. Ваши вызовы агента /v1/* через
ретрансляцию не меняются.1. Что делает shadow-режим firewall
Когда флагshadow_mode политики включён, шлюз выполняет полное вычисление —
разрешает политику, проходит правила в порядке приоритета, выбирает вердикт —
и затем, прямо перед тем, как вердикт вступит в силу, понижает всё, что
изменило бы вызов:
| Разрешённый вердикт | В shadow-режиме |
|---|---|
deny | → audit, причина [shadow] would deny — … |
sanitize | → audit, причина [shadow] would sanitize — … |
pending_approval | → audit, причина [shadow] would pending_approval — … |
allow / audit | без изменений (уже неблокирующие) |
2. Один конкретный сценарий развёртывания
Допустим, у вас есть политикаprod-agents с правилом deny на
деструктивные shell-команды, и вы хотите подтвердить, что она не сработает ни
на чём законном.
Включите shadow-режим
В Security → Firewall → Policies откройте
prod-agents, переключите
Shadow mode в положение «вкл» и сохраните. Политика сохраняет свою
привязку и свои правила — она просто перестаёт применять.Дайте реальному трафику течь
Ваши агенты продолжают вызывать шлюз ровно как раньше. Каждый вызов
инструмента вычисляется; ничего не блокируется. Дайте этому
репрезентативное окно — достаточно длинное, чтобы покрыть ваш реальный
набор инструментов.
Прочитайте потенциальные отказы
Откройте Events и отфильтруйте по
причине
[shadow]. Каждая строка показывает инструмент, поверхность,
прогон и правило, которое совпало, — так что [shadow] would deny — destructive shell command на вызове shell.exec — это ровно то, что вы
увидели бы в production, минус HTTP 400.Выключите shadow-режим
Как только лента покажет, что политика срабатывает на том, что вы
ожидаете, и ни на чём, чего не ожидаете, переключите Shadow mode в
«выкл». С следующего вызова те события
[shadow] would deny станут
реальными отказами
firewall_blocked.deny, — исправьте правило (ужесточите
глоб или добавьте
клаузу аргумента), оставаясь в
shadow, и снова понаблюдайте за лентой. Вы итерируете против реального трафика
с нулевым радиусом поражения.
3. Что shadow-режим не смягчает
Shadow-режим — это предпросмотр политики, а не главный выключатель. Ещё несколько границ, которые стоит знать:Вердикты allow и audit нетронуты
Вердикты allow и audit нетронуты
Понижаются только применяющие вердикты (
deny, sanitize,
pending_approval). allow или audit уже пропускают вызов, так что
смягчать нечего — те события всё равно несут shadow-метку, так что вы
можете сказать, что политика была в shadow, когда они записывались.cap_cost разрешается до понижения
cap_cost разрешается до понижения
Правило
cap_cost разрешается в
конкретный allow или deny на основе накопленных трат прогона, и
этот разрешённый вердикт затем понижает shadow-режим — потенциальный
отказ по cap-trip показывается как [shadow] would deny, как любой
другой.Это на политику, не на рабочее пространство
Это на политику, не на рабочее пространство
Shadow-режим живёт на каждой политике независимо. Вы можете держать в
shadow совершенно новую политику, пока обкатанная продолжает применять —
нет общего для рабочего пространства shadow-переключателя, который можно
забыть выключить.
4. Shadow-режим против остальных регуляторов развёртывания
Firewall даёт вам три разных контроля «не сломай пока ничего». Они решают разные проблемы:| Контроль | Область | Вопрос, на который он отвечает |
|---|---|---|
| Shadow-режим | Одна политика | «Что заблокировала бы эта политика, если бы я её применял?» |
Default-вердикт audit | Одна политика | «Логировать всё, что не названо ни одним правилом, не блокировать ничего.» |
| Observe-режим | Рабочее пространство | «Какие инструменты работают, не покрытые ни одной политикой?» |
audit — для несовпавшего хвоста одной политики; observe-режим — о пробелах
покрытия по рабочему пространству, а не о применении конкретной политики.
Их можно складывать. Новая политика default-deny под shadow-режимом — самое
мягкое возможное развёртывание: даже пол default-deny только логирует
[shadow] would deny вместо блокировки, так что вы видите полный набор
вызовов, которые ваши allow-правила ещё не покрывают, до того как deny станет
живым.5. Комплаенс-паки приземляются сначала в shadow
Когда вы устанавливаете комплаенс-пак в observe (неприменяющем) режиме, политики firewall, которые он материализует, создаются с включённым shadow-режимом — они вычисляют и логируют против вашего трафика, ничего не блокируя. Продвижение пака к применению выводит эти политики из shadow. Тот же механизм, применённый за вас: прогон контролей вхолостую, чтение потенциальных вердиктов, затем применение.6. Переключение
В консоли shadow-режим — это переключатель в редакторе политики. Тот же флаг выставлен на управляющем API какshadow_mode на объекте политики — эти
маршруты используют вашу сессию / access-токен и требуют Developer+:
| Метод и путь | Роль | Примечание |
|---|---|---|
PUT /api/workspace/firewall/policies | Developer+ | Установить shadow_mode: true / false на политике в теле. |
GET /api/workspace/firewall/policies/:id | Member | Прочитать текущее состояние shadow_mode политики. |
version политики, так что включение и выключение
shadow само по себе отслеживается.
Куда двигаться дальше
Создать и привязать политику
Двухшаговая настройка, которую разворачивает shadow-режим — создать
политику, привязать ключ.
Журнал событий
Где появляется
[shadow] would … — фильтруйте, углубляйтесь в прогоны и
правила.Вердикты
Применяющие вердикты, которые понижает shadow-режим, и что каждый делает
вживую.
Режимы применения
Как shadow, audit и observe вписываются в более широкую модель применения.
