Безопасность
Профили доверия, стоп-паттерны и журнал команд — чем агент ограничен и как это проверить.
Агент выполняет команды на настоящей машине. Вопрос не в том, доверяете ли вы ему, а в том, что произойдёт в тот раз, когда он ошибётся. Здесь описано, чем он ограничен.
Профиль доверия
Профиль доверия — набор правил, определяющих, что агенту можно делать самому, что только с подтверждения, а чего нельзя вовсе. Профиль задаётся на уровне организации и назначается проекту.
Есть три системных профиля:
| Профиль | Для чего |
|---|---|
| Полный | Агент выполняет команды сам. Для песочниц и личных проектов. |
| С оглядкой | Обычные команды сам, опасные — через подтверждение. Разумный выбор по умолчанию. |
| Всё с подтверждения | Каждая команда требует разрешения. Для первого знакомства и для чужих машин. |
Свои профили создаются на их основе: списком разрешённого, списком запрещённого и списком того, что требует подтверждения.
Стоп-паттерны
Отдельно от профилей есть правила, которые останавливают команду по её виду. Они существуют ровно потому, что «опасная команда» редко выглядит очевидно.
Что учтено специально, а не в общем виде:
- удаление в корне —
rm -rf /и его варианты с подстановками; - обход через
sudo—sudo rm -rf /не становится безопаснее от того, что начинается с другого слова; - обход через
ssh—ssh host 'rm -rf /'выполняется не здесь, но выполняется; - обход через
docker exec— команда внутри контейнера остаётся командой; - работа с дисками, правка системных настроек, выключение машины.
Разбор идёт по смыслу команды, а не по подстроке: команда с безобидным началом и опасным продолжением не проходит.
Правила закрыты по умолчанию
Если правило не может разобрать команду — она не считается безопасной. Непонятная команда останавливается, а не пропускается. Это осознанный выбор в пользу лишнего вопроса вместо пропущенной беды.
Проверка правил до того, как они понадобятся
В редакторе профиля есть поле, куда можно вписать команду и посмотреть, что с ней будет: разрешена, запрещена или потребует подтверждения.
Пользуйтесь им, когда пишете свой профиль. Проверять правила на настоящей задаче — плохой способ узнать, что в них опечатка.
Защищённые пути
Отдельно задаются пути, которые агенту трогать нельзя, даже если сама команда разрешена: каталоги с ключами, системные настройки, то, что вы сочтёте нужным.
Журнал команд
Каждая команда агента записывается: что выполнено, в какой задаче, каким агентом, чем закончилось.
Журнал виден на экране «Команды» проекта и во вкладке внутри задачи. Есть фильтры, живой хвост и выгрузка в CSV.
Две особенности, которые стоит знать:
- Секреты маскируются. Токены и ключи в командах заменяются на метку — журнал не становится местом утечки.
- Записи нельзя изменить или удалить. Это не обещание в интерфейсе, а ограничение на уровне прав базы данных: у приложения физически нет права править или удалять строки журнала. Даже ошибка в коде платформы не перепишет историю.
Что остаётся на вашей стороне
Честно о границах:
- Агент работает под правами того, кто его запустил. Если у человека есть доступ к боевому серверу, он есть и у агента на его машине. Платформа ограничивает команды, а не переписывает права операционной системы.
- Профиль защищает от ошибки, а не от злого умысла. Человек, запустивший агента, может выполнить те же команды руками — журнал это увидит, но не остановит.
- Ключи живут у вас. Платформа не хранит ваши SSH-ключи и токены доступа к серверам.