Выберите среду sandbox
Сравните варианты sandbox для Claude Code: встроенный инструмент Bash в песочнице, среда выполнения sandbox, контейнеры разработки, Docker и виртуальные машины. Выберите правильную изоляцию для вашей модели угроз.
Изоляция Claude Code ограничивает то, что сеанс может читать, писать и достигать в сети. Это особенно важно, когда вы позволяете Claude работать с меньшим количеством запросов разрешений, запускаете его без присмотра или указываете на код, которому вы не полностью доверяете.
Claude Code может работать в нескольких видах изолированных сред, начиная от легкой песочницы для каждой команды и заканчивая полностью отдельной виртуальной машиной. На этой странице рассматривается, что они изолируют и что они требуют, помогает вам выбрать один для вашей модели угроз и показывает, как обеспечить этот выбор во всей организации.
[!NOTE]
Для более широкой модели безопасности см. Безопасность. Для развертываний Agent SDK см. Безопасное развертывание.
Сравнение подходов к 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 — подключенный аккаунт GitHub |
Sandboxed Bash tool встроен в Claude Code и ограничивает только команды Bash. Встроенные инструменты файлов, серверы MCP и hooks по-прежнему работают непосредственно на вашем хосте. Каждый другой подход в таблице помещает весь процесс Claude Code внутри границы изоляции, поэтому инструменты файлов, серверы MCP и hooks также ограничены.
[!WARNING]
Изоляция Sandbox снижает влияние нарушения, но не устраняет риск. Любой подход, который позволяет исходящий трафик в сети, все еще может утечь данные, которые может прочитать агент, и любой подход, который монтирует ваш каталог проекта с правом записи, все еще может изменить этот код. Перед тем как полагаться на sandbox как на жесткий контроль, ознакомьтесь с ограничениями безопасности.
Изоляция также не изменяет то, что отправляется модели. Ваши подсказки и файлы, которые читает Claude, передаются в API Anthropic или вашему настроенному поставщику с sandbox или без него. См. Data usage для информации о том, что отправляет Claude Code и как это сократить.
Выберите подход
Сопоставьте вашу цель со строкой ниже, затем прочитайте раздел деталей, который следует.
| Вы хотите | Начните с |
|---|---|
| Уменьшить запросы разрешений во время повседневной работы на собственной машине | 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 с устройства без локальной настройки | Облачная сессия, для которой требуется подписка Claude, а для клонирования репозитория GitHub — подключенный аккаунт 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
[!NOTE]
Этот вариант не поддерживает нативный Windows. На хостах Windows используйте WSL2 или один из подходов контейнера или VM ниже.
Sandboxed Bash tool встроен в Claude Code. Он использует примитивы операционной системы для ограничения доступа к файловой системе и сети для команд инструментов Bash, PowerShell и Monitor, которые запускает Claude.
Запустите команду /sandbox для открытия панели песочницы и выберите режим. Руководство Sandboxing охватывает режимы одобрения, границу по умолчанию и как расширить или сузить ее.
Песочница для каждой команды не охватывает все, что работает в сеансе:
- Другие встроенные инструменты, такие как Read, Edit и WebFetch, работают внутри процесса Claude Code и не порождают произвольный код. Правила разрешений для пути или домена управляют ими вместо этого.
- MCP-серверы, командные хуки и мониторы плагинов — это отдельные процессы, которые работают без ограничений на хосте. О других процессах, работающих таким образом, см. Что работает вне песочницы.
Чтобы поместить встроенные инструменты, серверы 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 проверяет разрешённый путь.
- Linux и WSL2:
Разрешите сетевые домены, которые требует ваша сессия:
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; }
Установите среду выполнения глобально, с префиксом вне всех путей, к которым вы разрешаете запись:
npm install -g @anthropic-ai/sandbox-runtime
После того как файл настроек находится на месте, запустите Claude Code через среду выполнения из каталога вашего проекта:
srt claude
Claude Code запускается внутри песочницы с границами файловой системы и сети, которые вы настроили. Та же команда srt работает для изоляции в песочнице отдельных 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
- GitHub: подключённый аккаунт GitHub для работы в репозитории GitHub. Если вы запускаете из 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 для разработки
- Безопасность: полная модель безопасности Claude Code
- Безопасное развёртывание: руководство по изоляции для приложений Agent SDK
- Настройки: все ключи конфигурации sandbox, включая доставку управляемых настроек