Elegir un entorno sandbox
Compare las opciones de sandbox de Claude Code: la herramienta Bash aislada integrada, el tiempo de ejecución sandbox, contenedores de desarrollo, Docker y máquinas virtuales. Elija el aislamiento adecuado para su modelo de amenaza.
Aislar Claude Code limita lo que una sesión puede leer, escribir y alcanzar en la red. Esto es más importante cuando permite que Claude trabaje con menos solicitudes de permiso, lo ejecuta sin supervisión o lo apunta a código en el que no confía completamente.
Claude Code puede ejecutarse en varios tipos de entornos aislados, que van desde un sandbox ligero por comando hasta una máquina virtual completamente separada. Esta página compara estos entornos por lo que aíslan y lo que requieren, le ayuda a elegir uno para su modelo de amenaza, y muestra cómo aplicar esa opción en toda una organización.
Para el modelo de seguridad más amplio, consulte Seguridad. Para implementaciones de Agent SDK, consulte Implementación segura.
Comparar enfoques de sandboxing
Los dos primeros enfoques en la tabla siguiente se ejecutan en el sistema operativo host sin contenedores. El resto coloca Claude Code dentro de un contenedor o máquina virtual.
| Enfoque | Qué se aísla | Requiere Docker | Esfuerzo de configuración |
|---|---|---|---|
| Herramienta Bash sandboxed | Comandos Bash y sus procesos secundarios | No | Mínimo en macOS; bajo en Linux y WSL2 |
| Sandbox runtime | Todo el proceso de Claude Code, incluidas las herramientas de archivo, servidores MCP y hooks | No | Bajo |
| Dev container | Entorno de desarrollo completo | Sí | Medio |
| Contenedor personalizado | Entorno de desarrollo completo | Sí | Medio a alto |
| Máquina virtual | Sistema operativo completo | No | Alto |
| Claude Code en la web | Sistema operativo completo, alojado por Anthropic | No | Ninguno; requiere una suscripción a Claude y GitHub cuando inicia desde la interfaz web |
La herramienta Bash sandboxed está integrada en Claude Code y restringe los comandos Bash. Las herramientas de archivo integradas, los servidores MCP y los hooks aún se ejecutan directamente en su host. Todos los demás enfoques en la tabla colocan todo el proceso de Claude Code dentro del límite de aislamiento, por lo que las herramientas de archivo, los servidores MCP y los hooks también se restringen.
El aislamiento de sandbox reduce el impacto de una brecha, pero no elimina el riesgo. Cualquier enfoque que permita egreso de red aún puede filtrar datos que el agente puede leer, y cualquier enfoque que monte su directorio de proyecto escribible aún puede modificar ese código. Revise las limitaciones de seguridad antes de confiar en un sandbox como un control estricto.
El aislamiento tampoco cambia lo que se envía al modelo. Sus indicaciones y los archivos que Claude lee se transmiten a la API de Anthropic o a su proveedor configurado con o sin un sandbox. Consulte Uso de datos para saber qué envía Claude Code y cómo reducirlo.
Elegir un enfoque
Haga coincidir su objetivo con una fila a continuación, luego lea la sección de detalle que sigue.
| Usted quiere | Comience con |
|---|---|
| Reducir solicitudes de permiso durante el trabajo diario en su propia máquina | La herramienta Bash aislada, configurada con /sandbox |
Permitir que Claude trabaje sin supervisión con --dangerously-skip-permissions o modo automático |
El contenedor de desarrollo preconfigurado, cualquier contenedor o máquina virtual, o el tiempo de ejecución sandbox |
| Aislar servidores MCP y hooks así como Bash, sin Docker | El tiempo de ejecución sandbox |
| Trabajar en un repositorio no confiable | Una máquina virtual dedicada, o Claude Code en la web si tiene una suscripción a Claude; GitHub solo es necesario cuando inicia desde la interfaz web |
| Estandarizar un entorno aislado en un equipo | El contenedor de desarrollo preconfigurado, copiado en su repositorio |
| Usar Claude Code desde un dispositivo sin configuración local | Claude Code en la web, que requiere una suscripción a Claude y una cuenta de GitHub conectada |
| Requerir aislamiento para cada desarrollador en su organización | Aplicar aislamiento en toda la organización |
| Trabajar en un host Windows nativo | Un contenedor o máquina virtual, o ejecutar el sandbox Bash dentro de WSL2 |
Cómo se relaciona el aislamiento con los modos de permiso
Los modos de permiso deciden si se ejecuta una llamada de herramienta y si se le solicita primero. El aislamiento restringe lo que un comando puede acceder una vez que se ejecuta. Los dos funcionan juntos: cuando un modo de permiso permite que las acciones se ejecuten sin preguntarle, un límite de aislamiento limita lo que esas acciones pueden alcanzar.
Cuando pasa --dangerously-skip-permissions, Claude actúa sin preguntarle primero. Las acciones que ningún modo aprueba automáticamente aún se aplican.
Sin solicitudes para detectar errores, el límite de aislamiento que elija es lo que protege su sistema. Siempre ejecute sesiones --dangerously-skip-permissions dentro de un contenedor, una máquina virtual, o el tiempo de ejecución sandbox, para que las herramientas de archivo, los servidores MCP y los hooks también estén dentro del límite. En Linux y macOS, Claude Code se niega a iniciarse con esta marca cuando se ejecuta como root, así que ejecute el contenedor, la máquina virtual, o el tiempo de ejecución sandbox como un usuario no root.
El modo automático reemplaza la solicitud con un clasificador que revisa acciones. El clasificador es un control por acción, no un límite de aislamiento, por lo que un límite de aislamiento aún agrega defensa en profundidad para ejecuciones sin supervisión, y no es requerido como lo es para --dangerously-skip-permissions.
La herramienta Bash aislada por sí sola restringe solo Bash, por lo que no es suficiente para ejecuciones completamente sin supervisión en ninguno de los modos. Puede superponer enfoques: ejecutar la herramienta Bash aislada dentro de un contenedor o máquina virtual le da restricciones de comando a nivel de SO además del límite del entorno externo. Para cómo el sandbox Bash en sí interactúa con reglas de permiso y modos de permiso, consulte Cómo el sandboxing se relaciona con permisos y modos de permiso.
Herramienta Bash aislada
Esta opción no admite Windows nativo. En hosts Windows, use WSL2 o uno de los enfoques de contenedor o máquina virtual a continuación.
La herramienta Bash aislada está integrada en Claude Code. Utiliza primitivas del sistema operativo para restringir el acceso al sistema de archivos y la red de cada comando Bash que ejecuta Claude.
Ejecute el comando /sandbox para abrir el panel de sandbox y elegir un modo. La guía Sandboxing cubre los modos de aprobación, el límite predeterminado y cómo ampliarlo o estrecharlo.
El sandbox por comando no cubre todo lo que se ejecuta en una sesión:
- Otras herramientas integradas como Read, Edit y WebFetch se ejecutan dentro del proceso de Claude Code y no generan código arbitrario. Las reglas de permiso para ruta o dominio las controlan en su lugar.
- Los servidores MCP y hooks de comando son procesos separados que se ejecutan sin restricciones en el host.
Para poner herramientas integradas, servidores MCP y hooks todos detrás de un límite de SO, ejecute todo el proceso de Claude Code dentro del tiempo de ejecución sandbox, el contenedor de desarrollo o un contenedor personalizado.
Tiempo de ejecución sandbox
El paquete @anthropic-ai/sandbox-runtime envuelve un proceso completo en el mismo aislamiento Seatbelt o bubblewrap que usa el sandbox Bash integrado. Ejecutar Claude Code a través del tiempo de ejecución restringe cada herramienta, hook y servidor MCP en la sesión, no solo Bash. El tiempo de ejecución es una vista previa de investigación beta, y su formato de configuración puede cambiar a medida que el paquete evoluciona.
Esta sección cubre qué configura usted y qué el tiempo de ejecución aplica por su cuenta. Para implementar el tiempo de ejecución en aplicaciones del Agent SDK, consulte la guía de implementación segura.
Configurar e iniciar el tiempo de ejecución
En Linux y WSL2, el tiempo de ejecución depende de los mismos paquetes bubblewrap y socat que usa el sandbox integrado, más ripgrep, que Claude Code incluye pero el tiempo de ejecución independiente resuelve desde su PATH. Instale bubblewrap y socat como se describe en Configurar Linux y WSL2, y ripgrep desde el gestor de paquetes de su distribución. En macOS no necesita paquetes adicionales. El tiempo de ejecución usa el sandbox Seatbelt integrado allí.
Por defecto el tiempo de ejecución niega acceso de red y confina escrituras a un pequeño conjunto de rutas de tiempo de ejecución integradas, así que configúrelo antes de lanzar Claude Code a través de él. Coloque su configuración en ~/.srt-settings.json, o en un archivo que pase con --settings. El README del paquete documenta el esquema de configuración completo.
Permita acceso de escritura a al menos:
- Su directorio de proyecto.
- Las rutas de configuración de Claude Code
~/.claudey~/.claude.json. /tmp, donde Claude Code escribe archivos de tiempo de ejecución.
Permita los dominios de red que su sesión necesita:
api.anthropic.com, o el punto final de su proveedor configurado. En un proveedor de terceros, mantengaapi.anthropic.comtambién: la verificación de seguridad del dominio WebFetch aún lo llama por defecto a menos que establezcaskipWebFetchPreflight: true.claude.aiyplatform.claude.com, que requieren inicio de sesión OAuth y actualización de token. Las ejecuciones autenticadas con una clave API pueden descartar estos dos.
En Linux y WSL2, el tiempo de ejecución aplica permisos de escritura solo a rutas que ya existen. En un entorno nuevo, cree las rutas de configuración de Claude Code antes del primer lanzamiento:
mkdir -p ~/.claude && echo '{}' > ~/.claude.json
Una vez que el archivo de configuración esté en su lugar, lance Claude Code con npx y pase claude como el comando a envolver:
npx @anthropic-ai/sandbox-runtime claude
Claude Code se inicia dentro del sandbox con los límites de sistema de archivos y red que configuró. El mismo comando funciona para aislar servidores MCP independientes u otros procesos auxiliares.
Qué bloquea el tiempo de ejecución por su cuenta
El tiempo de ejecución bloquea las escrituras de mayor riesgo sin ninguna configuración de su parte:
denyWritetiene precedencia sobreallowWrite.- En la raíz del proyecto, el tiempo de ejecución niega
.git/hooks, niega.git/configa menos que establezcafilesystem.allowGitConfig: true, y niega.mcp.json,.claude/commands,.claude/agents, y archivos de inicio de shell. - En macOS, estas negaciones se verifican cuando ocurre una escritura, así que también cubren archivos anidados y repositorios creados durante la sesión.
- En Linux y WSL2, el tiempo de ejecución construye la lista de negación una vez al lanzamiento. Cubre de manera confiable la raíz del proyecto, realiza un escaneo superficial de mejor esfuerzo para copias anidadas que existen en ese momento, y no cubre nada que la sesión cree después, como
git init,git clone, o scaffolding. La secciónmandatoryDenySearchDepthdel README describe la semántica exacta del escaneo. - Sin un
~/.srt-settings.jsonválido, el tiempo de ejecución se inicia de todas formas, bloquea acceso de red, y confina escrituras a rutas de tiempo de ejecución integradas como/tmp/claude,~/.npm/_logs, y~/.claude/debug. No tome un inicio limpio como prueba de que su configuración se cargó. - Cuando pasa
--settings, el tiempo de ejecución se niega a iniciar si el archivo falla al cargar.
Sus permisos de escritura aún incluyen otras rutas desde las que Claude Code carga configuración, así que niegue esas con denyWrite. Una sesión en sandbox que puede escribirlas puede persistir hooks, reglas de permiso, o servidores MCP que se ejecutan sin sandbox la próxima vez que lance Claude Code.
Después de ejecuciones desatendidas
Revise las rutas que mantuvo escribibles. En Linux y WSL2, también revise cualquier cosa que la sesión creó.
Contenedores de desarrollo
Un contenedor de desarrollo ejecuta Claude Code dentro de un contenedor Docker que VS Code o un editor compatible gestiona, con su proyecto montado. Puede definir el suyo propio con un directorio .devcontainer/ en su repositorio.
El repositorio claude-code publica un contenedor de desarrollo de ejemplo con un firewall iptables de negación predeterminada como punto de partida. Cópielo en su repositorio y ajuste la lista de permitidos del firewall, la imagen base y la versión de Claude Code fijada para que se ajuste a su entorno. Debido a que el firewall bloquea el egreso no aprobado, una configuración como esta admite ejecutar Claude Code con --dangerously-skip-permissions para trabajo sin supervisión.
Contenedor personalizado
Puede ejecutar Claude Code en cualquier imagen de contenedor Docker u OCI con sus propias políticas de red, volúmenes montados y perfiles seccomp. Este es el camino más común para organizaciones con infraestructura de contenedor existente o ejecutores de CI.
Varios servicios de sandbox administrados y ejecución remota pueden alojar el contenedor para usted. La misma lista de verificación se aplica como para cualquier contenedor que opere: revise qué está montado escribible, qué credenciales y tokens son accesibles dentro de él y qué permite la política de egreso de red.
Puede superponer el sandbox Bash integrado dentro del contenedor para restricciones por comando. Los contenedores sin privilegios necesitan la configuración de sandbox anidado descrita en Solución de problemas de Sandboxing.
Máquina virtual
Una máquina virtual dedicada proporciona la separación más fuerte, con su propio kernel y, en implementaciones en la nube o microVM, su propio hardware virtualizado. Las opciones incluyen instancias en la nube, hipervisores locales y microVMs como Firecracker. Use este enfoque cuando esté evaluando código no confiable, cuando su política de seguridad requiera separación a nivel de kernel entre el agente y el host, o cuando ningún enfoque a nivel de host cumpla con sus requisitos de cumplimiento.
Docker Sandboxes proporciona una microVM con su propio daemon de Docker y sincronización de espacio de trabajo, que puede ejecutar Claude Code en cualquier host con Docker Sandboxes instalado. Es un producto gratuito e independiente de Docker que no requiere Docker Desktop.
Claude Code en la web
Claude Code en la web ejecuta cada sesión en una máquina virtual aislada y administrada por Anthropic. Un proxy de red aplica una lista de permitidos predeterminada, y un proxy separado mantiene su token de GitHub fuera del sandbox mientras emite credenciales con alcance para acceso al repositorio dentro de él. Las sesiones que su organización enruta a un entorno autohospedado se ejecutan en la infraestructura que usted aprovisiona en su lugar, donde el aislamiento, el control de salida y las credenciales de git son responsabilidad de su implementación.
Utilice este enfoque cuando desee aislamiento completo de máquina virtual sin aprovisionar infraestructura usted mismo, o cuando esté delegando tareas desde un dispositivo que no tiene un entorno de desarrollo local. Requiere una suscripción a Claude. Cuando inicia una sesión desde la interfaz web, también necesita una cuenta de GitHub conectada para que el sandbox pueda clonar su repositorio. Cuando inicia desde la CLI con --cloud, Claude Code puede agrupar y cargar su repositorio local en su lugar. Consulte Claude Code en la web para disponibilidad de planes y opciones de autenticación de GitHub.
Aplicar aislamiento en toda la organización
Los desarrolladores individuales pueden optar por cualquiera de los enfoques de sandboxing en esta página. Lo que una organización puede aplicar, y con qué herramientas, depende del enfoque:
- Sandbox Bash integrado: el único enfoque que Claude Code aplica a sí mismo. Entregue las claves de configuración
sandboxa través de configuración administrada, ya sea como un archivo administrado por su MDM o a través de configuración administrada por servidor en Claude.ai. Consulte Aplicar sandboxing con configuración administrada para las claves a implementar y cómo evitar que los desarrolladores amplíen la política. - Contenedores de desarrollo: confirme el contenedor de desarrollo de ejemplo en sus repositorios para estandarizar el entorno en un equipo. Esta es una convención en lugar de un límite de aplicación, porque Claude Code no requiere un contenedor. Si los desarrolladores no deberían poder ejecutar Claude Code fuera de él, aplique eso con las herramientas de administración de dispositivos de su organización o herramientas de lista de permitidos de software.
- Contenedores personalizados y máquinas virtuales: distribuya Claude Code a través de la imagen aprobada y use las herramientas de administración de dispositivos de su organización o herramientas de lista de permitidos de software para evitar la instalación fuera de ella.
Ver también
Estas páginas cubren detalles de configuración y política para los enfoques de sandboxing en esta página.
- Sandboxing: configure la herramienta Bash aislada integrada
- Contenedor de desarrollo: el contenedor de desarrollo Docker preconfigurado
- Seguridad: el modelo de seguridad completo de Claude Code
- Implementación segura: orientación de aislamiento para aplicaciones de Agent SDK
- Configuración: todas las claves de configuración de sandbox, incluida la entrega de configuración administrada