Couldn't load this page.

← Блог
Engineering

Claude Code sandbox: встроенная изоляция, Docker и облако

Yura Oak
Резюмировать с помощью:

Claude Code sandbox ограничивает доступ агента во время работы. Вы можете включить встроенную песочницу оболочки с помощью /sandbox, запустить Claude Code внутри контейнера Docker или выделить ему отдельную облачную машину. Выбор зависит от того, какие файлы, процессы и учетные данные нужны для сеанса.

Для локальной работы начните со встроенной песочницы. Для воспроизводимой среды разработки используйте dev-контейнер. Для удаленных задач или одновременной работы нескольких агентов облачная песочница предоставляет каждой задаче собственное рабочее пространство.

Что защищает встроенный Claude Code sandbox?

Claude Code использует средства операционной системы для ограничения своего инструмента оболочки и запускаемых им процессов. Он использует Seatbelt на macOS и bubblewrap на Linux. Песочница может ограничивать запись в файлы и доступ к сети через прокси-сервер с разрешенными доменами.

Эта область действия важна при добавлении инструментов. Встроенные файловые инструменты Claude Code, хуки и локальные серверы MCP находятся вне песочницы оболочки. Чтобы изолировать весь процесс агента и его локальные инструменты, запустите их внутри контейнера, виртуальной машины или отдельно настроенной среды выполнения песочницы. Удаленный сервис MCP сохраняет те разрешения, которые вы ему предоставили. Смотрите документацию по песочнице Claude Code.

НастройкаЧто она содержитЧто вам нужно контролировать
Встроенный Claude Code sandboxКоманды оболочки и их дочерние процессыФайловые инструменты, хуки, сервисы MCP, доступные для чтения пути и разрешенные домены
Dev-контейнер DockerПроцессы и файлы внутри контейнераМонтирования хоста, доступ к сокету Docker, привилегии и сетевую политику
Облачное рабочее пространствоПроцессы агента на отдельной машине или в среде выполненияЗагруженные данные, учетные данные, доступ к сети и фактическую границу изоляции рабочего пространства

Включение режима песочницы Claude Code

На macOS Claude Code использует существующую поддержку песочницы системы. На Linux или WSL2 сначала установите необходимые пакеты. Для системы Debian или Ubuntu:

sudo apt-get install bubblewrap socat

Запустите Claude Code в вашем проекте и введите:

/sandbox

Выберите режим, который подходит для вашего процесса проверки. Режим автоматического разрешения позволяет выполнять команды оболочки в песочнице без запроса на подтверждение. Обычные разрешения сохраняют стандартный процесс подтверждения при активной песочнице оболочки. Нативной Windows требуется WSL2 для этой песочницы. В руководстве по настройке перечислены требования к платформе и ограничения.

Для сеанса, который должен удерживать команды оболочки внутри песочницы, запустите Claude Code с помощью:

claude --settings '{"sandbox":{"enabled":true,"allowUnsandboxedCommands":false,"failIfUnavailable":true}}'

allowUnsandboxedCommands: false отключает путь обхода для команд, которые иначе выполнялись бы вне песочницы. failIfUnavailable: true вызывает сбой запуска при отсутствии поддержки песочницы. Проверьте также любые исключенные команды в ваших настройках. По умолчанию чтение файлов остается широким. Добавьте ограничения на чтение, если сеанс не должен видеть файлы в других местах на вашей машине.

Проверка границ перед длительным запуском

Попросите Claude выполнить эти команды через его инструмент оболочки:

touch ~/sandbox-probe
curl --noproxy '*' https://example.com

Запустите тест из папки проекта ниже вашего домашнего каталога. При заданных ограничениях первая команда должна завершиться ошибкой из-за записи вне этого проекта. Вторая проверяет возможность обхода сетевого прокси-сервера командой. Она должна завершиться ошибкой при блокировке прямого доступа к сети. Разрешенный запрос через прокси-сервер может быть успешным.

Поручите Claude выполнить проверки. Ввод команды вручную в отдельном терминале не проверяет песочницу оболочки агента.

Режим песочницы, автоматический режим и пропуск разрешений

Режимы разрешений определяют, когда Claude запрашивает подтверждение. Изоляция в песочнице контролирует, что операционная система позволяет делать команде.

Автоматический режим Claude Code использует классификатор для определения допустимых действий. Это отличается от режима автоматического разрешения песочницы оболочки. Изучите режимы разрешений перед изменением любой из настроек.

--dangerously-skip-permissions пропускает рутинные запросы разрешений. Он не создает контейнер, не ограничивает доступ к файлам и не устанавливает сетевую политику. Явные правила запрета и некоторые проверки могут по-прежнему применяться. При использовании для автономной работы сначала настройте и протестируйте окружающую изоляцию. Наше руководство по dangerously-skip-permissions описывает этот рабочий процесс.

Запуск Claude Code в Docker

Dev-контейнер предоставляет команде одинаковую стартовую среду и удерживает процессы агента внутри контейнера. Установите Docker и используйте редактор с поддержкой Dev Containers. Добавьте этот файл по пути .devcontainer/devcontainer.json в вашем проекте:

{
  "image": "mcr.microsoft.com/devcontainers/base:ubuntu",
  "remoteUser": "vscode",
  "features": {
    "ghcr.io/devcontainers/features/node:1": {
      "version": "22"
    },
    "ghcr.io/anthropics/devcontainer-features/claude-code:1.0": {}
  }
}

Откройте проект в контейнере, дождитесь сборки, затем выполните claude в его терминале и войдите в систему. Эта конфигурация устанавливает Claude Code и Node.js 22. Добавьте любые другие среды выполнения и зависимости, необходимые вашему проекту. Версия функции не фиксирует устанавливаемый релиз Claude Code.

Мы протестировали чистую сборку именно этой конфигурации. Затем Claude исправил намеренно падающий тест Node.js, и отдельный запуск node --test прошел успешно. Явное включение функции Node.js имеет значение. Наша первая чистая сборка только с функцией Claude Code завершилась ошибкой при установке Node.js и npm.

Проверьте монтирования перед передачей работы агенту. Доступное для записи монтирование проекта позволяет ему изменять файлы на вашем хосте. Избегайте монтирования домашнего каталога, производственных учетных данных или сокета Docker хоста. Эта минимальная конфигурация не добавляет белый список сети. Изучите руководство по dev-контейнерам от Anthropic и документацию по безопасности Docker для выбора необходимых элементов управления.

Контейнеры Docker и Docker Sandboxes различаются

Docker также предлагает продукт под названием Docker Sandboxes. Его документированная архитектура использует микро-ВМ и изолированный демон Docker. Обычный dev-контейнер не получает эти свойства только из-за использования Docker. Синхронизация рабочего пространства также зависит от выбранного режима Docker Sandboxes. Изучите его архитектуру и модель безопасности перед тем, как считать эти две настройки эквивалентными.

Когда помогает облачная песочница

Удаленное рабочее пространство помогает, когда задача должна продолжать выполняться после отключения вашего ноутбука, когда агентам нужны отдельные рабочие деревья или когда ваше приложение создает рабочее пространство для каждого пользователя. Вы можете скопировать репозиторий, запустить агента, проверить его изменения и извлечь нужные файлы.

Lizard Sandboxes запускает каждую песочницу как микро-ВМ Firecracker со своим ядром.

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

Запуск Claude Code в Lizard Sandboxes

Установите Lizard CLI, войдите в систему и выберите проект. Вам понадобится ключ API Anthropic или поддерживаемый токен подписки Claude для вызовов модели.

Для регистрации ключа API Anthropic выполните:

lizard agents add anthropic

Для подписки Claude создайте токен и зарегистрируйте его в Lizard CLI:

claude setup-token
lizard agents add claude

Вставьте учетные данные в ответ на запрос. Не сохраняйте их в репозитории и истории команд. Приведенные ниже команды предполагают успешную регистрацию. В нашем реальном тесте использовался существующий токен подписки Claude.

Создание рабочего пространства

Замените YOUR_PROJECT_ID на идентификатор вашего проекта:

lizard sandbox create \
  --project YOUR_PROJECT_ID \
  --template claude \
  --size small \
  --timeout 3600000 \
  --json

Установите SB равным идентификатору песочницы из этого ответа:

SB=YOUR_SANDBOX_ID

Тайм-аут здесь задает время жизни рабочего пространства в один час. Значение по умолчанию составляет пять минут, и выполнение команд его не продлевает. Установите достаточное время для задачи и сохраните работу до его истечения. Изучите справочник по CLI для команд жизненного цикла.

Копирование зафиксированного репозитория без токена GitHub

Из локального репозитория создайте пакет Git и загрузите его:

BUNDLE_DIR=$(mktemp -d)
git bundle create "$BUNDLE_DIR/app.bundle" HEAD
lizard sandbox files put \
  "$SB" "$BUNDLE_DIR/app.bundle" /workspace/app.bundle
lizard sandbox exec "$SB" -- \
  git clone /workspace/app.bundle /workspace/app

Пакет включает зафиксированную историю, доступную из HEAD. Он исключает незафиксированные и неотслеживаемые файлы, но любые секреты, зафиксированные в этой истории, передаются вместе с ним. Проверьте репозиторий перед его передачей. Клонирование этого пакета может оставить рабочую копию в состоянии отсоединенного HEAD. Вы по-прежнему можете проверять изменения агента и экспортировать измененные файлы.

Постановка небольшой задачи для Claude

lizard sandbox prompt "$SB" \
  --agent claude \
  --cwd /workspace/app \
  "Run the tests. Fix one failing test with the smallest reasonable change. Report what changed and which tests passed."

Оставьте --agent claude. Пропуск параметра агента может привести к выбору агента по умолчанию. Раннер Lizard использует обход разрешений внутри удаленного рабочего пространства для выполнения задачи без интерактивных запросов. Граница рабочего пространства и предоставленные вами учетные данные должны соответствовать задаче. Код внутри может читать учетные данные модели, доступные процессу.

В нашем тесте функция Python вычитала два числа, тогда как тест ожидал их сумму. Claude изменил эту функцию, и последующий независимый запуск теста прошел успешно.

Проверка и извлечение результата

lizard sandbox exec "$SB" -- \
  git -C /workspace/app status --short
lizard sandbox exec "$SB" -- \
  git -C /workspace/app diff
lizard sandbox files get \
  "$SB" /workspace/app/path/to/changed-file ./changed-file.review

Замените path/to/changed-file на файл, который вы хотите скачать. Запустите тесты проекта самостоятельно перед слиянием изменений. Мы проверили удаленный diff, перезапустили тест и скачали исправленный файл. Его содержимое совпало с удаленным результатом.

После сохранения результата приостановите рабочее пространство:

lizard sandbox pause "$SB"

Дождитесь статуса paused. Успешная приостановка останавливает тарификацию вычислений. Экспортируйте работу перед удалением песочницы и используйте Persistent Volumes, когда данные должны сохраниться после удаления песочницы. За хранимые данные может по-прежнему взиматься плата.

Сколько стоит облачное рабочее пространство?

Опубликованные тарифы Lizard на вычисления на 18 октября 2026 составляли:

РазмерПроцессор и памятьВычисления в час
Small2 vCPU, 4 ГБ$0.0162
Medium4 vCPU, 8 ГБ$0.0324
Large8 vCPU, 16 ГБ$0.0648

По тарифу Small 100 часов работы песочницы стоят $1.62 за вычислительные ресурсы. Вызовы модели, хранилище и любые другие тарифицируемые ресурсы оплачиваются отдельно.

Lizard Pro стоит $19 в месяц с учетом налогов. В эту сумму входит использование ресурсов на $19; превышение оплачивается по модели pay as you go. Новые аккаунты получают семь дней пробного периода и ресурсы на $5. Требуется банковская карта. Плата за подписку Claude или API Anthropic взимается отдельно от платы Lizard. Проверьте текущие цены перед оценкой задачи.

Работающая песочница продолжает потреблять вычислительные ресурсы во время простоя. Успешно приостановите ее по завершении работы. Хранилище Persistent Volumes может оставаться тарифицируемым при приостановленных вычислениях.

Распространенные проблемы настройки

ПроблемаЧто проверить
Нативная песочница не запускается на LinuxУстановите bubblewrap и socat, затем перезапустите Claude Code. Проверьте ограничения пространств имен хоста.
Нужный домен заблокированДобавьте в белый список только требуемый хост и повторите попытку через прокси-сервер.
Сбой bubblewrap внутри контейнераВложенная изоляция зависит от конфигурации хоста и контейнера. Используйте поддерживаемую конфигурацию; не отключайте изоляцию без явного решения.
Файлы хоста изменяются во время выполнения DockerПроверьте монтирования с правом записи. Изменения в смонтированном репозитории сохраняются на хосте.
В Lizard запускается не тот агентПередайте --agent claude явно.
Облачная задача завершается до ее выполненияУстановите подходящее время жизни и сохраните результаты до его истечения. Команды не сбрасывают время жизни.

Что мы протестировали

18 октября 2026 года мы запустили Claude Code 2.1.286 на macOS и в новой песочнице Small Firecracker через Lizard CLI 4.0.58. Проверка на macOS разрешила запись в рабочее пространство и заблокировала как запись вне проекта, так и прямой сетевой запрос в обход прокси-сервера.

Облачный тест включал загрузку пакета Git, клонирование, исправление падающего теста Python с помощью Claude, независимый перезапуск теста, проверку diff, скачивание файла и приостановку. Мы проверили, что песочница перешла в статус paused.

В тесте Docker использовались Docker Engine 28.1.1 на ARM64, Dev Containers CLI 0.89.0, Node.js 22.23.3 и Claude Code 2.1.302. Исправленная конфигурация была собрана из чистого контейнера, и Claude исправил падающий тест Node.js, который прошел при отдельном перезапуске. Мы также проверили команду установки пакетов Linux.

Для аутентификации использовался существующий токен подписки Claude. Мы не повторяли первый вход через OAuth и не тестировали нативную изоляцию Windows/WSL. Эти проверки охватывают описанные здесь команды и результаты. Они не являются аудитом безопасности.

Какую настройку выбрать?

Начните со встроенного Claude Code sandbox для локальных задач оболочки, где вы можете определить нужные пути и домены. Используйте dev-контейнер, когда вашей команде нужна общая среда разработки. Выбирайте облачное рабочее пространство, когда задачам требуются удаленные вычисления или отдельные среды для параллельных агентов.

Для первого запуска Lizard скопируйте небольшой репозиторий, попросите Claude исправить один падающий тест, проверьте diff и приостановите рабочее пространство. В руководстве по Claude Code описаны актуальные шаги настройки.

Разрабатывайте с ИИ. Развёртывайте с Lizard.

Вам не нужна платформенная команда, чтобы выйти в продакшн. Весь ваш облак — в одной команде CLI.

Начать бесплатно
Сервисы
—
Аддоны
—
Развёртывания
—
Запуски Sandboxes
—

Мы используем cookie для основной работы сайта и аналитики. См. нашу политику cookie.