Skip to main content
Skip to content

Acerca del aislamiento local para GitHub Copilot

Los sandboxes locales proporcionan entornos de ejecución aislados que permiten Copilot interactuar de forma segura con código, herramientas, sistema de archivos y recursos de red en el equipo local.

Introducción

Copilot los espacios aislados locales son la plataforma de ejecución que impulsa experiencias de espacio aislado seguras para GitHub Copilot CLI y el GitHub Copilot app. A medida que Copilot realiza más acciones en su nombre —usar herramientas, ejecutar comandos y modificar archivos—, el sandboxing proporciona el aislamiento, la portabilidad y los controles de políticas necesarios para adoptar de forma segura flujos de trabajo con agentes.

El aislamiento está disponible tanto en GitHub Copilot CLI como en GitHub Copilot app, pero ambos entornos lo exponen de forma diferente:

  • En Copilot CLI, controlará el espacio aislado local con los comandos y la configuración descritos en este artículo.
  • En el GitHub Copilot app, puede usar el aislamiento local para las sesiones de repositorio local y de árbol de trabajo. La configuración del proyecto define la configuración predeterminada para las nuevas sesiones locales, y puedes cambiar el aislamiento para una sesión local activa. Para obtener más información, vea Trabajar con sesiones de agente en la aplicación GitHub Copilot.

Las opciones de espacio aislado local se configuran por separado en Copilot CLI y GitHub Copilot app. Habilitar o configurar el aislamiento local en una superficie no lo cambia en la otra.

Con el aislamiento en zona protegida, puedes elegir dónde se ejecuta Copilot:

  • Aislamiento local: Ejecute Copilot de forma segura en su propia máquina. Los comandos que ejecuta Copilot tienen un acceso restringido al sistema de archivos, la red y las capacidades del sistema. Puede usar el espacio aislado local sin cargo adicional.
  • Aislamiento en la nube: Ejecuta una sesión completa Copilot de forma remota, dentro de un entorno Linux completamente aislado y efímero, alojado por GitHub. El sandboxing en la nube se factura según el uso. Para obtener más información, vea Información sobre sandboxes en la nube para GitHub Copilot.

Aislamiento local

El aislamiento local permite que Copilot se ejecute en un entorno aislado directamente en tu equipo, con acceso restringido a tu sistema de archivos, a la conectividad de red y a las capacidades del sistema. Puede configurar el aislamiento local en Copilot CLI o en el GitHub Copilot app.

El espacio aislado local está desactivado de forma predeterminada. Hasta que lo habilites, los comandos de shell que ejecuta Copilot se ejecutan directamente en tu equipo con el mismo nivel de acceso que tu cuenta de usuario: pueden leer, escribir y eliminar en cualquier lugar al que tú puedas acceder, alcanzar cualquier red a la que tu equipo pueda acceder y usar tus credenciales sin restricciones. Habilitar el espacio aislado local restringe este acceso a una política que usted controla.

Cómo funciona el aislamiento local

El aislamiento local se basa en Microsoft eXecution Container (MXC), una tecnología multiplataforma que proporciona una interfaz común para los mecanismos de aislamiento disponibles en cada sistema operativo. Copilot CLI declara la política de aislamiento que quiere aplicar —qué rutas se pueden leer o escribir, si se permite el acceso a la red, etc.— y MXC aplica esa política mediante el mecanismo de aislamiento adecuado para su sistema operativo.

Existen tecnologías de aislamiento en un espectro, desde un aislamiento fuerte, como hipervisores o contenedores completos, hasta un aislamiento de peso más ligero, como el proceso de nivel de sistema operativo y la contención del sistema de archivos. El aislamiento local se sitúa actualmente en el extremo más liviano de este espectro: restringe lo que un proceso puede leer, escribir y a qué recursos de la red puede acceder, pero no ejecuta sus comandos dentro de una máquina virtual o un contenedor independientes. Si desea evaluar si este nivel de aislamiento cumple los requisitos de seguridad, consulte el repositorio microsoft/mxc para obtener más información sobre la implementación.

Para obtener más información, vea Comprender las políticas del sistema de archivos para el aislamiento local en GitHub Copilot CLI.

Habilitación del espacio aislado local

Para habilitar el aislamiento local dentro de una sesión Copilot CLI, ejecute:

Shell
/sandbox enable

Después de habilitar el espacio aislado local, los comandos y las herramientas que ejecuta un agente por ti se ejecutan dentro de un espacio aislado de nivel de sistema operativo que limita su acceso al sistema. Estos incluyen comandos de shell, búsqueda de archivos y, de forma predeterminada, cualquier servidor MCP local y cualquier servidor de lenguaje (LSP) local. Copilot sigue usando el espacio aislado local, incluso en sesiones futuras, hasta que se ejecute /sandbox disable para deshabilitarlo.

Si la configuración administrada de empresa requiere aislamiento, la configuración normal y las opciones de inicio no pueden desactivarla. Si la directiva efectiva permite omitir el sandbox, puede seguir deshabilitando el sandbox durante el resto de la sesión actual, ya sea desde un aviso de permiso de omisión o ejecutando /sandbox disable. Esto no cambia la política guardada.

Las herramientas de archivos integradas de la CLI —comandos nativos que forman parte de la CLI, en lugar de comandos de shell como sed— se ejecutan dentro del proceso de la CLI. Dado que la propia CLI no está aislada, el entorno aislado del sistema operativo nunca ve las operaciones sobre archivos que realizan estas herramientas y no puede restringirlas. En su lugar, las herramientas integradas están diseñadas para comprobar por sí mismas la política de aislamiento y respetar la configuración establecida en la medida de lo posible.

En la configuración del GitHub Copilot apprepositorio, se define el valor predeterminado de espacio aislado local para el nuevo repositorio local y las sesiones del árbol de trabajo. También puede cambiar el aislamiento de una sesión local activa sin cambiar el valor predeterminado del repositorio.

Para obtener más información sobre cómo habilitar el espacio aislado local en Copilot CLI y el Copilot app, vea Uso del entorno aislado local.

Configurar el aislamiento local

Puede usar el comportamiento predeterminado del aislamiento local o modificar a qué puede acceder Copilot. Los controles disponibles dependen de la superficie que use.

En Copilot CLI, puede controlar varias dimensiones de acceso:

  • Sistema de archivos: conceda acceso de solo lectura o de lectura y escritura a rutas específicas, o deniegue el acceso a determinadas rutas.
  • Red: Controle el acceso saliente a Internet y el acceso a la red local, o permita y deniegue hosts específicos. Las restricciones disponibles dependen del sistema operativo.
  • Credenciales: habilite la autenticación de Git y GitHub CLI (gh) o enmascare variables de entorno adicionales. Las herramientas de espacio aislado reciben marcadores de posición y un proxy local proporciona las credenciales reales solo a destinos HTTPS aprobados.
  • Subprocesos: elija si los servidores MCP locales y los servidores de idioma también se ejecutan dentro del espacio aislado. Los servidores MCP remotos nunca se ejecutan en un entorno aislado.
  • Cadena de claves (macOS): elija si se puede acceder a la cadena de claves del sistema desde el espacio aislado.
  • Excepciones por comando: permita o impida que los comandos individuales se ejecuten fuera del espacio aislado cuando necesiten acceso más amplio.

En la configuración del GitHub Copilot app, repositorio se expone un subconjunto de estos controles:

  • Sistema de archivos: conceder acceso adicional de solo lectura o de lectura y escritura a rutas específicas, o denegar rutas.
  • Red: permita o bloquee el acceso saliente a Internet y a la red local.
  • Credenciales: elija si las credenciales de Git y de GitHub CLI están disponibles dentro del entorno aislado.

La aplicación también puede pedirle que apruebe un comando específico para ejecutarlo fuera del espacio aislado. No puede configurar la opción de permitir solicitudes de omisión en la configuración del repositorio. Para obtener más información sobre cómo configurar el espacio aislado local en la aplicación o la CLI, consulte Configuración de los ajustes del entorno aislado local.

Compatibilidad multiplataforma.

El aislamiento local está disponible en macOS, en Linux y en versiones recientes de Windows 11. Cada sistema operativo usa un back-end de aislamiento diferente, por lo que los requisitos son diferentes:

  • macOS usa el back-end de Seatbelt. Copilot CLI aplica un perfil de ámbito de proceso a cada comando de espacio aislado. Usa macOS 15 (Sequoia) o una versión posterior. Copilot CLI no bloquea un macOS anterior, pero el back-end no se prueba allí.
  • Linux usa el backend bubblewrap. Instale bubblewrap 0.5.0 o posterior, y asegúrese de que bwrap esté en su PATH. Si /sandbox indica que su bwrap es demasiado antiguo, actualice el paquete. Cuando la política de espacio aislado permite el tráfico saliente, debe contar también con:
    • slirp4netns en el PATH.
    • unshare y nsenter de util-linux 2.35 o posterior, con compatibilidad con --map-current-user y --keep-caps.
    • iptables, ip6tablesy sus archivos binarios de restauración. Utilice el backend nf_tables. El backend heredado también funciona, pero solo si se puede escribir en /run/xtables.lock.
    • Acceso a /dev/net/tun.
  • Windows requiere una actualización Windows 11 reciente que admita el espacio aislado. La compatibilidad con características como rutas de acceso denegadas, conexiones localhost y proxy también depende de la versión de Windows. Si el host no puede admitir una característica solicitada, Copilot CLI notifica el requisito en lugar de ejecutar el comando con restricciones más débiles. Consulte información de actualización de Windows para el aislamiento de Copilot.

Compatibilidad con proxy

En Copilot CLI, las reglas de host y la configuración del proxy HTTP usan un proxy local integrado. Su aplicación difiere según el sistema operativo:

  • macOS y Linux: el sandbox restringe las conexiones salientes al proxy local. Los programas que omiten la configuración de proxy tampoco se pueden conectar directamente. Los requisitos de Linux para el tráfico saliente que se muestra en Compatibilidad multiplataforma también se aplican al configurar un proxy.
  • Windows: las reglas de proxy y host requieren una versión de Windows compatible y que Permitir red local esté activado. En Windows, el espacio aislado se basa en programas que respetan la configuración del proxy. Como resultado, estos controles no proporcionan la misma protección contra las conexiones directas que en macOS y Linux.

En GitHub Copilot app, puede guardar las rutas de acceso denegadas en la configuración del repositorio. Si las capacidades activas de BaseContainer no pueden imponer una ruta denegada, el comando en espacio aislado falla en lugar de ejecutarse con una política más débil o sin espacio aislado.

En Linux, bubblewrap no puede controlar el acceso a la red local independientemente para los procesos generados, incluidos los comandos de shell y los servidores MCP o LSP locales. La configuración de red local todavía se aplica a las operaciones dentro del proceso, como las solicitudes web y las conexiones MCP remotas, tanto en la CLI como en la aplicación.

Si el anfitrión no admite el aislamiento local

En Copilot CLI, se desactiva el espacio aislado para la sesión actual si el host no lo admite, aunque exista una preferencia de usuario guardada para habilitarlo. Un aviso explica que los comandos y servicios de shell se ejecutarán sin sandbox. La configuración guardada sandbox.enabled permanece sin cambios. Se rechaza ejecutar /sandbox enable en un host no admitido.

La configuración empresarial puede cambiar este comportamiento. En un host no admitido, se rechaza una solicitud administrada por el servidor para habilitar el espacio aislado, a menos que la configuración administrada efectiva también establezca sandbox.failIfUnavailable en true. La configuración administrada por el dispositivo puede requerir aislamiento incluso en un host no compatible. Los comandos y servicios que requieren aislamiento en zona protegida fallan en lugar de ejecutarse sin él. Cuando la configuración administrada efectiva establece tanto sandbox.enabled como sandbox.failIfUnavailable en true, la CLI bloquea las solicitudes de modelo y la ejecución de herramientas para la sesión si no puede aplicar el espacio aislado. Estos requisitos pueden provenir de la configuración administrada por el servidor, la configuración administrada por el dispositivo o una combinación de ambos.

En el caso de GitHub Copilot app, en un host que no admite el espacio aislado local, una sesión configurada para usar el espacio aislado local puede iniciarse normalmente, pero los comandos de shell y otros procesos de espacio aislado fallan cuando Copilot intenta iniciarlos. GitHub Copilot app conserva la preferencia guardada y la operación con errores notifica que el espacio aislado no se admite en la plataforma. La configuración administrada por el dispositivo puede requerir este modo a prueba de fallos con denegación por defecto y puede bloquear la ejecución del modelo y de la herramienta.

Cumplimiento de directivas empresariales

Las empresas pueden requerir espacio aislado local y aplicar su configuración a través de la configuración administrada por el servidor, administrada por MDM o basada en archivos. Consulte Introducción a la configuración administrada por la empresa.

Autenticación y acceso

El aislamiento utiliza la autenticación Copilot existente. Si puede iniciar sesión en Copilot CLI o en el GitHub Copilot app y tiene acceso a Copilot, no es necesario configurar una autenticación aparte para las opciones de aislamiento disponibles en esa superficie. No es necesario configurar un proveedor de nube independiente, administrar claves de API ni configurar la infraestructura.

Facturación

El espacio aislado local se incluye en el asiento estándar de GitHub Copilot sin coste adicional.

Lectura adicional