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.
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.
Elegir un enfoque
Haga coincidir su objetivo con una fila a continuación, luego lea la sección de detalle que sigue.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 comandos shell, 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.
/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.
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 de Bash integrado. Ejecutar Claude Code a través del tiempo de ejecución restringe las herramientas, los hooks y los servidores MCP de la sesión, además de los comandos de shell. 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 lo que configuras tú y lo que el tiempo de ejecución aplica por su cuenta. Para desplegar el tiempo de ejecución en aplicaciones del Agent SDK, consulta la guía de despliegue seguro.
Configurar e iniciar el tiempo de ejecución
En Linux y WSL2, el tiempo de ejecución depende de los mismos paquetesbubblewrap y socat que usa el sandbox integrado, más ripgrep, que Claude Code incluye pero el tiempo de ejecución independiente resuelve desde tu PATH. Instala bubblewrap y socat como se describe en Configurar Linux y WSL2, y ripgrep desde el gestor de paquetes de tu distribución. En macOS no necesitas paquetes adicionales. El tiempo de ejecución usa allí el sandbox Seatbelt integrado.
Por defecto, el tiempo de ejecución niega el acceso de red y confina las escrituras a un pequeño conjunto de rutas de tiempo de ejecución integradas, así que configúralo antes de lanzar Claude Code a través de él. Coloca tu configuración en ~/.srt-settings.json, o en un archivo que pases con --settings. El README del paquete documenta el esquema de configuración.
Permite acceso de escritura al menos a:
- Tu directorio de proyecto.
- Las rutas de configuración de Claude Code
~/.claudey~/.claude.json. - El directorio donde Claude Code escribe los archivos de tiempo de ejecución. A menos que establezcas
CLAUDE_CODE_TMPDIR, ese directorio es:- Linux y WSL2:
/tmp - macOS:
/private/tmp./tmpes un enlace simbólico a ese directorio, y Seatbelt verifica la ruta resuelta.
- Linux y WSL2:
api.anthropic.com, o el endpoint de tu proveedor configurado. En un proveedor de terceros, mantén tambiénapi.anthropic.com: la verificación de seguridad de dominios de WebFetch aún lo llama por defecto a menos que establezcasskipWebFetchPreflight: true.claude.aiyplatform.claude.com, que requieren el inicio de sesión OAuth y la actualización de tokens. Las ejecuciones autenticadas con una clave de API pueden prescindir de estos dos.
npx y pasa claude como el comando a envolver:
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 tu parte:denyWritetiene precedencia sobreallowWrite.- En la raíz del proyecto, el tiempo de ejecución niega
.git/hooks, niega.git/configa menos que establezcasfilesystem.allowGitConfig: true, y niega.mcp.json,.claude/commands,.claude/agentsy los archivos de inicio del 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 sola vez al lanzarse. Cubre de manera confiable la raíz del proyecto, realiza un escaneo superficial de mejor esfuerzo en busca de copias anidadas que existan en ese momento, y no cubre nada que la sesión cree después, como
git init,git cloneo scaffolding. La secciónmandatoryDenySearchDepthdel README describe la semántica exacta del escaneo. - Si
~/.srt-settings.jsonno existe y no pasas--settings, el tiempo de ejecución se inicia de todas formas. Bloquea el acceso de red y confina las escrituras a rutas de tiempo de ejecución integradas como/tmp/claude,~/.npm/_logsy~/.claude/debug. No tomes un inicio limpio como prueba de que tu configuración se cargó. - Si el archivo de configuración existe pero está vacío, es ilegible o no es válido, el tiempo de ejecución se niega a iniciar, ya sea
~/.srt-settings.jsono un archivo que pases con--settings. También se niega a iniciar si el archivo de--settingsno existe.
denyWrite. Una sesión en el sandbox que pueda escribir en ellas puede persistir hooks, reglas de permisos o servidores MCP que se ejecuten fuera del sandbox la próxima vez que lances Claude Code.
Después de ejecuciones desatendidas
Revisa las rutas que mantuviste con permiso de escritura. En Linux y WSL2, revisa también todo lo que la sesión haya creado.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. Puedes superponer el sandbox Bash integrado dentro del contenedor para restricciones por comando. Los contenedores sin privilegios necesitanenableWeakerNestedSandbox, descrito en Bubblewrap no se inicia dentro de un contenedor.
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.Sesiones en la nube
Una sesión en la nube se ejecuta en una máquina virtual aislada 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. A menos que inicie desde la CLI, 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 Usar Claude Code en la nube 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