Глава 16

Разводите sandbox, approvals и секреты

Sandbox отвечает, куда может дотянуться процесс. Approval решает, когда нужна остановка. Secret store определяет, какие credentials вообще доступны. Ни один из этих слоёв не заменяет остальные - и путаница между ними даёт ложное ощущение защиты.

Пять контролей и вопрос, на который каждый отвечает, удобно держать в одной таблице.

Контроль · Вопрос · Пример отказа

  • Tool permission - Можно ли вызвать действие автоматически?; Запросить approval для deploy tool
  • Filesystem sandbox - Какие пути доступны процессу?; Запретить запись вне workspace
  • Network policy - Какие destinations достижимы?; Разрешить только registry и test service
  • Secret scope - Какие credentials выданы задаче?; Только read-only token test tenant
  • Application authorization - Что вправе делать identity?; Запретить production object независимо от prompt

Границы у трёх продуктов документированы по-разному, и знать их надо точно. У Codex sandbox mode и approval policy - отдельные настройки; для local CLI и IDE дефолт включает выключенную сеть и запись, ограниченную active workspace. У Claude Code permission rules применяются к tools, а OS sandbox ограничивает Bash и его дочерние процессы, но MCP servers и hooks остаются отдельными host-процессами, если весь Claude Code не изолирован внешним контейнером. У Cursor режимы запуска управляют approvals для shell, MCP и Fetch, и официальная документация прямо говорит, что auto-review classifier не является security boundary.

Прогнать конкретную задачу через подбор границ - sandbox, сеть, секреты, approval - помогает лаборатория.

Интерактивная лаборатория 4

Подберите границы запуска

Trusted repository не отменяет sandbox: проверьте active config и dirty files.
Оставьте filesystem read-only.
Network deny.
External side effects не нужны; не выдавайте write credentials.

И правило, которое надёжнее любого приложения к prompt.

Не монтируйте секреты по привычке. Если тест не использует cloud account, не передавайте cloud token. Если нужен Git read, не выдавайте write. Самый надёжный секрет для задачи - тот, которого в среде нет. Application authorization должна запрещать production-объект независимо от того, что сказано в prompt.

Права и границы заданы. Теперь превратим тесты из финального ритуала в обратную связь, которая ведёт агента к причине.

Проверка знаний

Что определяет secret scope в отличие от sandbox и approval?

Ссылки