Разводите 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 - помогает лаборатория.
Подберите границы запуска
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?