SpyBara
Go Premium

sandbox-environments.md 2026-10-01 23:59 UTC to 2026-10-02 08:03 UTC

This page contains 19 additions and 17 deletions.

2026
Fri 2 09:02

Выберите среду sandbox

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

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

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

Сравнение подходов к sandboxing

Первые два подхода в таблице ниже работают на хост-операционной системе без контейнеров. Остальные помещают Claude Code внутри контейнера или виртуальной машины.

Подход Что изолируется Требует Docker Усилия по настройке
Sandboxed Bash tool Команды Bash, PowerShell и Monitor и их дочерние процессы Нет Минимально на macOS; низко на Linux и WSL2
Sandbox runtime Весь процесс Claude Code, включая инструменты файлов, серверы MCP и hooks Нет Низко
Dev container Полная среда разработки Да Среднее
Custom container Полная среда разработки Да Среднее-высокое
Virtual machine Полная операционная система Нет Высокое
Cloud sessions Полная операционная система, размещенная Anthropic Нет Нет; требуется подписка Claude, а также подключенный аккаунт GitHub, если вы не запускаете с claude --cloud

Sandboxed Bash tool встроен в Claude Code и ограничивает только команды Bash. Встроенные инструменты файлов, серверы MCP и hooks по-прежнему работают непосредственно на вашем хосте. Каждый другой подход в таблице помещает весь процесс Claude Code внутри границы изоляции, поэтому инструменты файлов, серверы MCP и hooks также ограничены.

Выберите подход

Сопоставьте вашу цель со строкой ниже, затем прочитайте раздел деталей, который следует.

Вы хотите Начните с
Уменьшить запросы разрешений во время повседневной работы на собственной машине sandboxed Bash tool, включенный с /sandbox
Позволить Claude работать без присмотра с --dangerously-skip-permissions или в режиме auto Предварительно настроенный dev container, любой контейнер или VM, или sandbox runtime
Изолировать серверы MCP и hooks, а также Bash, без Docker Среда выполнения sandbox
Работать с ненадежным репозиторием Выделенная виртуальная машина или cloud session, если у вас есть подписка Claude; GitHub не требуется при запуске с claude --cloud
Стандартизировать изолированную среду в команде Предварительно настроенный dev container, скопированный в ваш репозиторий
Использовать Claude Code с устройства без локальной настройки cloud session, который требует подписку Claude и подключенный аккаунт GitHub
Требовать изоляцию для каждого разработчика в вашей организации Enforce isolation across an organization
Работать на нативном хосте Windows Контейнер или VM, или запустить Bash sandbox внутри WSL2

Как изоляция связана с режимами разрешений

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

Когда вы передаете --dangerously-skip-permissions, Claude действует без предварительного запроса. Ограничения на действия, которые ни один режим не одобряет автоматически, по-прежнему действуют.

Без запросов для перехвата ошибок, граница изоляции, которую вы выбираете, — это то, что защищает вашу систему. Всегда запускайте сеансы --dangerously-skip-permissions внутри контейнера, VM или sandbox runtime, чтобы инструменты файлов, серверы MCP и hooks также находились внутри границы. На Linux и macOS Claude Code отказывается запускаться с этим флагом при работе от имени root, поэтому запускайте контейнер, VM или среду выполнения sandbox от имени пользователя, не являющегося root.

Auto mode заменяет запрос классификатором, который проверяет действия. Классификатор — это контроль для каждого действия, а не граница изоляции, поэтому граница изоляции все еще добавляет защиту в глубину для автоматических запусков и не требуется так, как для --dangerously-skip-permissions.

sandboxed Bash tool сам по себе ограничивает только shell команды, поэтому его недостаточно для полностью автоматических запусков в любом режиме. Вы можете комбинировать подходы: запуск sandboxed Bash tool внутри контейнера или VM дает вам ограничения команд на уровне ОС поверх внешней границы окружения. Для информации о том, как сам Bash sandbox взаимодействует с правилами разрешений и режимами разрешений, см. How sandboxing relates to permissions and permission modes.

Sandboxed Bash tool

Sandboxed Bash tool встроен в Claude Code. Он использует примитивы операционной системы для ограничения доступа к файловой системе и сети каждой команды Bash, PowerShell или Monitor, которую запускает Claude.

Запустите команду /sandbox для открытия панели песочницы и выберите режим. Руководство Sandboxing охватывает режимы одобрения, границу по умолчанию и как расширить или сузить ее.

Песочница для каждой команды не охватывает все, что работает в сеансе:

  • Другие встроенные инструменты, такие как Read, Edit и WebFetch, работают внутри процесса Claude Code и не порождают произвольный код. Правила разрешений для пути или домена управляют ими вместо этого.
  • Серверы MCP и command hooks — это отдельные процессы, которые работают без ограничений на хосте.

Чтобы поместить встроенные инструменты, серверы MCP и hooks все позади одной границы ОС, запустите весь процесс Claude Code внутри sandbox runtime, dev container или custom container.

Sandbox runtime

Пакет @anthropic-ai/sandbox-runtime оборачивает весь процесс в ту же изоляцию Seatbelt или bubblewrap, которую использует встроенная песочница Bash. Запуск Claude Code через среду выполнения ограничивает инструменты, хуки и MCP-серверы сессии, а также shell-команды. Среда выполнения — это бета-версия research preview, и ее формат конфигурации может измениться по мере развития пакета.

В этом разделе рассматривается, что вы настраиваете и что среда выполнения применяет самостоятельно. Для развёртывания среды выполнения в приложениях Agent SDK см. руководство по безопасному развёртыванию.

Настройка и запуск среды выполнения

На Linux и WSL2 среда выполнения зависит от тех же пакетов bubblewrap и socat, что и встроенная песочница, плюс ripgrep, который Claude Code поставляет в комплекте, но автономная среда выполнения разрешает из вашего PATH. Установите bubblewrap и socat как описано в Настройка Linux и WSL2, и ripgrep из менеджера пакетов вашего дистрибутива. На macOS вам не требуются дополнительные пакеты. Там среда выполнения использует встроенную песочницу Seatbelt.

По умолчанию среда выполнения запрещает доступ в сеть и ограничивает запись небольшим набором встроенных путей среды выполнения, поэтому настройте ее перед запуском Claude Code через нее. Поместите вашу конфигурацию в ~/.srt-settings.json или в файл, который вы передаете с --settings. README пакета документирует схему конфигурации.

Разрешите доступ на запись по крайней мере к:

  • Вашему каталогу проекта.
  • Путям конфигурации Claude Code ~/.claude и ~/.claude.json.
  • Каталогу, в который Claude Code записывает файлы среды выполнения. Если вы не задали CLAUDE_CODE_TMPDIR, этот каталог:
    • Linux и WSL2: /tmp
    • macOS: /private/tmp. /tmp — это символическая ссылка на этот каталог, а Seatbelt проверяет разрешённый путь.

Разрешите сетевые домены, которые требует ваша сессия:

  • api.anthropic.com или эндпоинт вашего настроенного поставщика. У стороннего поставщика также сохраняйте api.anthropic.com: проверка безопасности домена WebFetch по-прежнему вызывает его по умолчанию, если вы не установите skipWebFetchPreflight: true.
  • claude.ai и platform.claude.com, которые требуются для входа через OAuth и обновления токена. Запуски, аутентифицированные с помощью API-ключа, могут исключить эти два домена.

На Linux и WSL2 среда выполнения применяет разрешения на запись только к путям, которые уже существуют. В свежей среде создайте пути конфигурации Claude Code перед первым запуском:

mkdir -p ~/.claude && { [ -f ~/.claude.json ] || echo '{}' > ~/.claude.json; }

После того как файл настроек находится на месте, запустите Claude Code с npx и передайте claude как команду для обертывания:

npx @anthropic-ai/sandbox-runtime claude

Claude Code запускается внутри песочницы с границами файловой системы и сети, которые вы настроили. Та же команда работает для изоляции в песочнице отдельных MCP-серверов или других вспомогательных процессов.

Что среда выполнения блокирует самостоятельно

Среда выполнения блокирует записи с наивысшим риском без какой-либо конфигурации с вашей стороны:

  • denyWrite имеет приоритет над allowWrite.
  • В корне проекта среда выполнения запрещает .git/hooks, запрещает .git/config, если вы не установите filesystem.allowGitConfig: true, и запрещает .mcp.json, .claude/commands, .claude/agents и файлы запуска оболочки.
  • На macOS эти запреты проверяются при выполнении записи, поэтому они также охватывают вложенные файлы и репозитории, созданные во время сессии.
  • На Linux и WSL2 среда выполнения создает список запретов один раз при запуске. Она надежно охватывает корень проекта, выполняет поверхностное сканирование (по мере возможности) вложенных копий, которые существуют в этот момент, и не охватывает ничего, что сессия создает позже, например git init, git clone или scaffolding. Раздел mandatoryDenySearchDepth в README описывает точную семантику сканирования.
  • Если ~/.srt-settings.json не существует и вы не передаете --settings, среда выполнения все равно запускается. Она блокирует доступ в сеть и ограничивает запись встроенными путями среды выполнения, такими как /tmp/claude, ~/.npm/_logs и ~/.claude/debug. Не принимайте чистый старт как доказательство того, что ваши настройки загрузились.
  • Если файл настроек существует, но пуст, нечитаем или недействителен, среда выполнения отказывается запускаться, независимо от того, это ~/.srt-settings.json или файл, который вы передаете с --settings. Она также отказывается запускаться, если файл --settings не существует.

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

После автоматических запусков

Проверьте пути, которые вы оставили доступными для записи. На Linux и WSL2 также проверьте все, что создала сессия.

Dev containers

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

Репозиторий claude-code публикует пример dev container с брандмауэром iptables по умолчанию deny в качестве отправной точки. Скопируйте его в ваш репозиторий и отрегулируйте список разрешений брандмауэра, базовый образ и закрепленную версию Claude Code в соответствии с вашей средой. Поскольку брандмауэр блокирует неодобренный исходящий трафик, конфигурация, подобная этой, поддерживает запуск Claude Code с --dangerously-skip-permissions для автоматической работы.

Custom container

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

Несколько управляемых служб sandbox и удаленного выполнения могут размещать контейнер для вас. Тот же контрольный список применяется к любому контейнеру, который вы работаете: проверьте, что смонтировано с правом записи, какие учетные данные и токены доступны внутри него и какую политику исходящего трафика в сети он позволяет.

Вы можете комбинировать встроенную песочницу Bash внутри контейнера для ограничений на уровне каждой команды. Непривилегированным контейнерам требуется параметр enableWeakerNestedSandbox, описанный в разделе Bubblewrap не запускается внутри контейнера.

Virtual machine

Выделенная виртуальная машина обеспечивает самое сильное разделение, с собственным ядром и, в облачных или microVM развертываниях, собственным виртуализированным оборудованием. Варианты включают облачные экземпляры, локальные гипервизоры и microVM, такие как Firecracker. Используйте этот подход, когда вы оцениваете ненадежный код, когда ваша политика безопасности требует разделения на уровне ядра между агентом и хостом, или когда ни один подход на уровне хоста не соответствует вашим требованиям соответствия.

Docker Sandboxes предоставляет microVM с собственным демоном Docker и синхронизацией рабочего пространства, которая может запустить Claude Code на любом хосте с установленным Docker Sandboxes. Это бесплатный автономный продукт от Docker, который не требует Docker Desktop.

Cloud sessions

Облачный сеанс запускается в изолированной виртуальной машине, управляемой Anthropic. Сетевой прокси обеспечивает список разрешений по умолчанию, и отдельный прокси хранит ваш токен GitHub вне sandbox, выдавая ограниченные учетные данные для доступа к репозиторию внутри него. Сеансы, которые ваша организация маршрутизирует в самостоятельно размещаемую среду, запускаются на инфраструктуре, которую вы предоставляете, где изоляция, контроль исходящего трафика и учетные данные git являются ответственностью вашего развертывания.

Используйте этот подход, когда вы хотите полную изоляцию VM без самостоятельного предоставления инфраструктуры, или когда вы делегируете задачи с устройства, которое не имеет локальной среды разработки. Это требует подписку Claude. Если вы не запускаете из CLI, вам также нужен подключенный аккаунт GitHub, чтобы sandbox мог клонировать ваш репозиторий. Когда вы запускаете из CLI с --cloud, Claude Code может упаковать и загрузить ваш локальный репозиторий вместо этого. См. Использование Claude Code в облаке для доступности плана и опций аутентификации GitHub.

Enforce isolation across an organization

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

  • Built-in Bash sandbox: единственный подход, который Claude Code обеспечивает сам. Доставьте ключи параметров sandbox через managed settings, либо как файл, управляемый вашим MDM, либо через server-managed settings на Claude.ai. См. Enforce sandboxing with managed settings для ключей для развертывания и как помешать разработчикам расширить политику.
  • Dev containers: зафиксируйте пример dev container в ваших репозиториях для стандартизации среды в команде. Это соглашение, а не граница обеспечения, потому что Claude Code не требует контейнер. Если разработчики не должны иметь возможность запустить Claude Code вне его, обеспечьте это с помощью инструментов управления устройствами вашей организации или инструментов разрешения программного обеспечения.
  • Custom containers and VMs: распределите Claude Code через одобренный образ и используйте инструменты управления устройствами вашей организации или инструменты разрешения программного обеспечения для предотвращения установки вне его.

See also

Эти страницы охватывают детали конфигурации и политики для подходов выше.

  • Sandboxing: настройте встроенный инструмент sandboxed Bash
  • Dev container: предварительно настроенный контейнер Docker для разработки
  • Security: полная модель безопасности Claude Code
  • Secure deployment: руководство по изоляции для приложений Agent SDK
  • Settings: все ключи конфигурации sandbox, включая доставку управляемых параметров