AI и разработка

Как изолировать AI-агента: Docker, отдельный сервер и минимум доступов

Claude Code, Codex и другие агенты запускают команды, устанавливают пакеты и читают файлы. Большинство разработчиков включают режим «полный доступ» и работают на машине, где лежат ключи от прода, облаков и банка. Разбираем, чем это грозит и как изолировать агента без потери удобства.

Сервер под Claude Code и AI-агентовПришлите стек — подберём серверное окружение без звонка. Подобрать окружение

Откуда риск

Агент не злонамерен, но он исполняет то, что прочитал. Файл README в чужом репозитории, комментарий в коде, ответ веб-страницы или вывод установленного пакета могут содержать инструкцию, которую модель воспримет как команду. Это называется prompt injection, и полностью защититься от него на уровне модели пока не умеет никто.

Добавьте к этому обычные ошибки: агент «почистил ненужное» и снёс не ту папку, подставил в коммит файл с токеном, установил пакет с опечаткой в названии. На ноутбуке разработчика у такого агента есть доступ ко всему: ~/.ssh, ~/.aws, токены облаков, сессии браузера, менеджер паролей.

Отдельная история: окружение агента по определению сетевое. Он скачивает зависимости, ходит в API, иногда в произвольные сайты. Один скомпрометированный пакет, и у злоумышленника тот же доступ, что у агента. Истории про взлом крупных компаний через ноутбук одного инженера повторяются каждый год, и агент с полными правами делает такой ноутбук ещё более привлекательной целью.

Три уровня изоляции

УровеньЧто даётОт чего не защищаетСложность
Отдельный пользователь ОСагент не видит ваши ключи и домашнюю папкуобщие ядро, сеть, диск; sudo по ошибке10 минут
Docker-контейнерсвоя файловая система, ограниченные порты и ресурсы, легко пересоздатьуязвимости в Docker, смонтированные тома, сеть хостачас
Отдельный серверфизическое разделение: на нём нет ничего вашего, кроме проектатолько от того, что сами на него положитечас плюс аренда

Уровни комбинируются. Самая частая рабочая схема у наших клиентов: отдельный сервер в дата-центре, на нём отдельный пользователь под агента, проекты в Docker. Домашний ноутбук превращается в терминал, на котором нет ни кода, ни ключей.

01Отдельный пользователь ОСагент не видит ваши ключи · 10 минут
02Docker-контейнерсвоя ФС, лимиты ресурсов, пересоздание за минуту · час
03Отдельный серверфизически нет ничего вашего, кроме проекта · час + аренда
Рис. 1 · уровни складываются: сервер → пользователь → контейнеры

Уровень 1: отдельный пользователь

Минимум, который стоит сделать сегодня, даже на ноутбуке:

sudo adduser agent --disabled-password
sudo -u agent -i
# внутри: установить Node.js, Claude Code, клонировать проект

У пользователя agent нет доступа к вашему ~/.ssh, нет sudo, нет сессий браузера. Для Git выдайте ему отдельный deploy-ключ с правами только на нужный репозиторий. Для API-ключей облаков создайте отдельные ключи с минимальными правами и сроком жизни.

Уровень 2: Docker

Контейнер даёт воспроизводимость и быстрый откат: сломал окружение, пересоздал за минуту. Базовый образ под агента содержит Node.js, Python, Git и сам агент, проект монтируется как том. Что важно настроить:

  • Не монтируйте домашнюю папку хоста. Только папку проекта и отдельный том под кэш агента.
  • Не пробрасывайте Docker-сокет. Контейнер с доступом к /var/run/docker.sock равен root на хосте.
  • Ограничьте ресурсы. --memory, --cpus, --pids-limit: агент, ушедший в бесконечный цикл сборки, не положит сервер.
  • Отдельная сеть. Если агенту не нужен доступ к внутренним сервисам, не давайте его. Исходящий трафик при необходимости ограничивается прокси.
  • Секреты через переменные окружения с коротким сроком, а не файлами в образе.

Приём, который экономит время: один образ, много контейнеров. Под каждый проект или каждого агента свой контейнер из того же образа. Контейнер стоит ничего, пересоздаётся за секунды, а утечка из одного не затрагивает остальные.

Уровень 3: отдельный сервер

Сервер под Claude Code и AI-агентов — Пришлите стек — подберём серверное окружение без звонка.
Подобрать окружение →

Это единственный уровень, который защищает от ошибок в самом Docker и от ваших собственных привычек. На сервере под агента физически нет ничего, кроме кода проекта и тестовых данных. Нет SSH-ключей от прода, нет банковских сессий, нет личных файлов.

Ноутбуктолько терминалнет кода и ключейSSHСервер агента в ДЦuser: agentбез sudodeploy-ключтолько этот репоDockerпроект AлимитыDockerпроект BлимитыDockerстендфичиCI / продключи продаздесь, не у агента
Рис. 2 · агент не знает секретов прода: деплой делает CI со своими ключами

Дополнительные плюсы, ради которых разработчики переезжают на серверы даже без оглядки на безопасность:

  • Агент работает часами, пока ноутбук закрыт. Подключение с телефона через SSH или веб-терминал.
  • Можно держать несколько серверов: по одному под каждого агента или проект. Часть наших клиентов разводит Claude Code, Codex и локальную модель по разным машинам, чтобы они не мешали друг другу и не делили лимиты по ресурсам.
  • Тяжёлые сборки и тесты не греют ноутбук. При необходимости их размазывают по нескольким серверам.
  • Команда «почисти машину» перестаёт быть страшной: сервер можно переустановить.

Небольшой VPS с 4 ядрами и 8 ГБ памяти справляется с одним агентом на типовом веб-проекте. Выделенный сервер нужен, когда проектов много, сборки тяжёлые или рядом крутится локальная LLM. Разбор требований по ресурсам есть в статье сервер для Claude Code.

Правила, которые работают на любом уровне

  • Агент не знает секретов прода. Деплой делает отдельный CI с собственными ключами, а не агент напрямую.
  • Отдельный стенд под каждую фичу. Агент проверяет работу на своём стенде, а не на общем тестовом сервере.
  • Ревью перед мержем. Код агента попадает в основную ветку через pull request, который читает человек или второй агент другой модели.
  • Бэкап отделён от агента. Снимки диска и репозитории хранятся там, куда у агента нет доступа на запись.
  • Логи действий. История команд агента пишется в файл вне его домашней папки. Когда что-то сломалось, вы знаете, что именно он сделал.

Что мы предлагаем

Сервер под агента в нашем дата-центре в Москве с готовой изоляцией: отдельный пользователь, Docker с лимитами, бэкапы, мониторинг и доступ с телефона. Настроим за день, покажем, как пересоздавать окружение одной командой. Если у вас уже есть свой сервер, разместим его в стойке по модели colocation.

Частые вопросы

Безопасно ли давать Claude Code полный доступ?

На рабочем ноутбуке с ключами и паролями нет. Полный доступ допустим внутри изолированного окружения: отдельный пользователь без sudo, Docker-контейнер без доступа к хосту или отдельный сервер, где нет ничего, кроме проекта.

Достаточно ли Docker для изоляции AI-агента?

Для большинства задач да, если не монтировать домашнюю папку, не пробрасывать Docker-сокет и ограничить ресурсы. От ошибок в самом Docker и от случайно смонтированных секретов защищает только отдельный сервер.

Какой сервер нужен под одного AI-агента?

VPS с 4 ядрами, 8 ГБ памяти и NVMe-диском хватает на одного агента и типовой веб-проект. Для нескольких агентов, тяжёлых сборок или локальной LLM берут выделенный сервер.

Что такое prompt injection и почему это касается агентов?

Это инструкция, спрятанная в данных, которые читает модель: в файле, на веб-странице, в выводе команды. Агент может воспринять её как команду и выполнить. Изоляция ограничивает ущерб, если это случится.

Смежные услуги

Читайте также

Подобрать окружение →
Позвонить Оставить заявку