Безопасность
Инструмент рассчитан на локальную сеть и одного владельца. Ниже — то, что стоит понимать до того, как открывать к нему доступ.
Агент работает без подтверждений
По умолчанию стоит режим bypassPermissions: инструменты выполняются без вопросов.
- В докере изоляцией служат сами монтирования контейнера, а
AGENT_WORKSPACE_ROOTSограничивает доступные каталоги. Контейнер работает под root, поэтому CLI передаётсяIS_SANDBOX=1— иначе он откажется от bypass. - В приложении монтирований нет. Тот же режим означает полный доступ к диску.
Хотите подтверждений — поставьте default, plan или acceptEdits: тогда над композером появляется карточка «Агент хочет вызвать инструмент», и ответ стоит до вашего решения.
Что видно агенту
Всё, что смонтировано в контейнер. EXTRA_WORKSPACE_ROOT расширяет этот список — добавляйте осознанно.
GH_TOKEN из .env (он нужен, чтобы выпускать релизы из чата) агенту тоже виден. Если он вам нужен — берите fine-grained токен на один репозиторий.
Пароли агенту не пишут сообщением
Безопасный режим включён у чата по умолчанию: агент не читает .env, ключи ssh и прочие хранилища, а пароль просит карточкой — значение живёт в памяти сервера и в переписку не попадает. Подробности и границы этого — Секреты и безопасный режим.
Ключ доступа равносилен паролю
С ним можно всё то же, что руками за клавиатурой этой машины. Ключ короче восьми символов считается выключенным.
Отдавать чужому человеку основной ключ не нужно: заведите именованный ключ с областью «свои проекты» и/или «только чтение». Терминал гостю не полагается вовсе — из оболочки видно всю машину, а не область ключа.
На Linux, где сервер работает root-ом (сборка в докере), ход такого ключа исполняется отдельным пользователем машины: чужие файлы отбивает ядро, а не интерфейс. В приложении на Windows и macOS этого нет — там граница остаётся областью ключа.
Привязанный чат Telegram — тоже полный доступ
Он пишет агенту с правами хозяина машины. Поэтому привязка идёт одноразовым кодом на 10 минут, а неизвестному чату бот не отвечает вовсе. Для чата, которому нужны только уведомления, есть режим «только читать».
TLS внутри нет
Api ходит по обычному HTTP. Выставлять порт наружу без обратного прокси с авторизацией не нужно.
Если нужен https — либо туннель по кнопке (он даёт https сразу), либо свой домен за прокси, либо VPN, где вопрос публичного доступа снимается вовсе.
Короткий чек-лист
- Ключ — длинный и не переиспользованный.
- Наружу — только через прокси с авторизацией, туннель или VPN.
- Гостям — именованные ключи с областью, а не основной.
EXTRA_WORKSPACE_ROOTиGH_TOKEN— по необходимости, а не «на всякий случай».- Перехват вопросов на чужой сессии — не оставлять включённым без присмотра.
Чем это не является
Clauder однопользовательский по смыслу. Ключи «только чтение» и ключи на выбранные проекты есть, но это не RBAC, не OIDC и не команды. Для конторы это не инструмент.