OpenClaw: одобрения exec и allowlist на совместно арендованном Mac mini, матрица 2026 на VmMac
Владельцы платформенной безопасности разворачивают OpenClaw на арендованных Mac mini с Apple Silicon в VmMac и обязаны трактовать tools.exec как корневой уровень хоста, а не вспомогательный плагин. Одобрения exec в документации — это сцепка автономных агентов и shell: совмещают security mode, ask и allowlist плюс консервативный askFallback без графики. Матрица 2026 применима к шлюзам на launchd в Гонконге, Японии, Корее, Сингапуре, США. Сопутствие: секреты и plist, изоляция staging / prod, дисциплина Node PATH — тогда согласования не остаются единственной защитой.
Доступны SSH и опция VNC; вы храните политику и следы. Справка — шаблоны подключения, цены — разнос prod-агентов на отдельные ноды после ужесточения exec, а не бесконечный хаос в одной коробке. Статьи вебхуки/шлюз и идемпотентность и очереди показывают, где exec всплывает вместе с сетевым I/O, не путайте сходство с политикой.
Модель угроз: один macOS, несколько команд
Allowlist не спасает, если скомпрометированный пакет с правом записи переписывает YAML на диск. Слой: без-админ сервисные учётки, неизменяемые артефакты + checksum, раздельные state-root на среду, пересмотр прав и портов демона до того, как кто-то «на час» вручит sudo двум людям. Если больше одного человека с sudo — статус non-compliant до раздела ролей; иначе аудит 2026 запишет «мы доверяем allowlist», и это будет неверно.
- Метрика: пейджинг при
exec.approval.requested> 40 /ч на headless — поломка политики или буря запросов. - Метрика: стоп-релиз, если
deny> 15 % попыток / сутки — слишком мало «безопасных» путей или кривой ask.
tools.exec.security: deny, allowlist, full
Каждому режиму — срок, владелец и запись в том же репо, что Troubleshooting — ночная смена не должны гадать, почему в пятницу вдруг full «на три дня».
| Режим | Смысл | Лучшее для VmMac | Риск |
|---|---|---|---|
deny |
Всё host-exec стоп | боты read-only | 0 shell exfil, слом воркфлоу |
allowlist |
Только сопоставленные команды | default для shared / CI-рядом | нужен еженедельный ревью |
full |
Широко | только краткоживущий sandbox | макс. 72 ч TTL |
Режимы ask, всплески запросов, askFallback для headless
always ask + отсутствие UI = плановый простой. on-miss + узкая allowlist, askFallback=deny, 24/7 нет? Тогда только deny, иначе агент бесконечно ждёт. Фиксируйте релизы OpenClaw, репетируйте на staging по изоляции launchd. Модель «без головы» подробно в headless vs GUI — согласуйте с TCC, не путайте с exec-политикой.
Slack-эскалация с подписанными ссылками — только если compliance разрешает; иначе жёсткий отказ, тикет, спокойная ночь. Не оставляйте агенты ждать GUI, о котором никто не знает.
Allowlist: префиксы, argv, аудит
Ошибка зрелых команд — вписать python -m или bundle exec без фиксирования интерпретатора: путь плавает, allowlist срабатывает непредсказуемо, и вы оправдываетесь в инциденте словом «среда». Вместо этого дублируйте абсолютные пути в hash-/контрольных списках и храните рядом SHA256 бинаря из build-артефакта, чтобы смена Homebrew не превратила ночь в квест. Для поставок из /usr/bin доверяйте, но снимайте shasum -a 256 в редких саппорт-кейсах, когда внешняя угроза — не хакер, а «обновил систему, не предупредил».
Хороший список — как код инфраструктуры: конкретные пути, без широкого sh -c, кроме ревьюнутого в git скрипта. После brew upgrade пути плывут; сверяйте гайд по развёртыванию. Слой структурные логи и диск даёт поиск, а не гигабайты текста. Три пласта: bootstrap / build / deploy — владелец, ревью, чрезвычайный пункт на 48 ч с тикетом на авто-откат, иначе curl | bash вернётся «на минуту».
| Шаблон | Вердикт | Почему |
|---|---|---|
/opt/homebrew/bin/git + фикс. подкоманды |
✓ предпочтительно | аудит argv |
bash -lc "curl | sh" |
✗ стоп | неограниченный downstream |
обёртка /usr/local/bin/vm-* |
✓ с подп. и версией | центр изменений |
Почему launchd меняет одобрения
Интерактив снимает вопросы в сессии; launchd — нет. Либо парный оператор (алерт → подпись), либо VNC break-glass в runbook, см. VNC и одноразовая QA-лаборатория. Следите глубиной очереди > 5 > 10 мин — это инфраструктурный пейдж, не Data Science. В постмортеме фиксируйте argv, чтобы тот же кейс не будил on-call 30 дней спустя. См. многоагентная автоматизация 24/7 : высокориск — на отдельных метках, не всё в одной plist.
Семь шагов усиления
- Карта всех
execна хосте, тег «нужен»/«удалить». - Staging:
tools.exec.security=allowlist, 7 суток логов deny. - Allowlist v1 ≤ 25, каждая строка в git с причиной.
on-miss+askFallback=denyheadless.- Строгие логи по runbook.
- Прокат релиза по пяти регионам до prod.
- Квартал:
curl | bash→ ожидаемый deny, артефакт в compliance.
Регресс читайте в восстановлении шлюза, а не в «сняли allowlist, чтобы снова зелёно» — это 2020, не 2026.
Паритет пяти регионов
Календари разъезда релизов, не латентность, дают дрейф: хэш политики в метрике, fail CI при сдвиге более чем на одну ревизию. Масштаб по тарифу, а не вечно расширенный full за кадром. Согласованность с CI-гайдом помогает не спорить, «только на этой ветке allowlist больше». Утренняя stand-up-звонителка не заменяет git diff, но пусть хотя бы релиз-менеджер видит жёлтые флажки, если токен вебхука обновлён в Токио, а в Далласе ещё вчерашний: это снова exec, только другой пласт.
FAQ: exec на арендованном Mac mini
Один allowlist на staging+prod? Нет — ветвление и мердж как код.
VmMac навязывает OpenClaw? Нет : политика ваша, металл — VmMac.
Апгрейд вернул диалоги? Пин, релиз-ноты, staging, плейбук recovery — не «снять half политику до утра».
Mac mini M4 и высокая уверенность
Когда в одной сети сидит коммерция и R&D, важно, чтобы tools.exec не удваивался как тайный канал обхода DLP. Юридически: политика остаётся у вас, а VmMac не подменяет ваш договор NDA, но физически отдельные Mini в регионах снижают риск «смешали проекты на одном ssh и забыли». Документируйте, какой Label launchd к какому коду, зашивайте EnvironmentVariables в plist и в git — тогда 2026 не окажется годом, когда продуктовая команда узнала, что ночной агент писал в /tmp чужой проект, потому что HOME казался одинаковым.
Один M4, предсказуемо, TCC яснее, чем в матрёшке VM, что стыкуется с headless / GUI — аренда по HK, JP, KR, SG, US сегментирует риск. VmMac — не движок политик, а сегментируемое железо + exec в git — скука, которую ждут аудит и CFO.
Долгий текст к концу 2026: если exec измеряем, allowlist сужается, on-call смеётся реже, а арендные часы идут в продукт, а не в «снять allowlist, чтобы снова зелёно в Singapore» в истории Jira вечностью.
Сегментируйте агентов до ослабления exec
Добавьте Mac mini в ближайшем к вам регионе VmMac — «обкатайте» allowlist вне боя.