Nota:
Los espacios aislados locales para GitHub Copilot están en versión preliminar pública y están sujetos a cambios.
Importante
El espacio aislado local en Windows requiere una compilación de Windows Insiders.
Introduction
Al habilitar el espacio aislado local, Copilot CLI ejecuta los comandos que invoca en su nombre dentro de un espacio aislado del sistema operativo. El espacio aislado impone una política del sistema de archivos: un conjunto de reglas que determina qué rutas puede leer un proceso u operación en entorno aislado, cuáles puede escribir y a cuáles no puede acceder en absoluto.
La mayoría de esta directiva se ensambla automáticamente, de modo que los comandos diarios sigan funcionando sin configurar. En este artículo se explica cómo Copilot llega a la directiva y cómo comprobar el acceso que concede en un directorio determinado.
Para obtener una visión general del aislamiento local, incluida la forma de activarlo y desactivarlo, consulte Información sobre los entornos de pruebas en la nube y locales para GitHub Copilot y Uso del aislamiento local.
¿A qué se aplica la directiva?
La política del sistema de archivos abarca el trabajo que Copilot realiza en su nombre, pero se aplica de distintas maneras según el tipo de trabajo:
- Los comandos de Shell y las búsquedas integradas se ejecutan como procesos secundarios de espacio aislado, por lo que el sistema operativo aplica la directiva directamente. Las herramientas
grepyglob, por ejemplo, ejecutan ripgrep como un proceso hijo en entorno aislado. - Los procesos locales de MCP y del servidor de lenguaje (LSP) también se pueden ejecutar dentro del espacio aislado, por lo que el sistema operativo también aplica la directiva en ellos.
- Las herramientas integradas para leer y editar archivos se ejecutan como parte de Copilot CLI mismo, en lugar de hacerlo como un proceso hijo aislado. Comprueban la misma directiva del sistema de archivos antes de leer o escribir un archivo, pero dado que el espacio aislado del sistema operativo nunca ve estas operaciones, la comprobación es una protección solo de software en lugar de una que el sistema operativo aplica.
- Los servidores MCP remotos se ejecutan fuera de tu equipo, por lo que no hay ningún proceso secundario local que aislar y la directiva del sistema de archivos no los restringe.
- Los subagentes no actúan directamente; orquestan otras herramientas. Si se aplica la directiva y cómo depende de la herramienta que invoca un subagente.
Por lo tanto, un proceso de espacio aislado está restringido por el sistema operativo, mientras que una operación en proceso aplica la misma directiva en el software, por lo que este artículo hace referencia a un proceso o operación de espacio aislado en lugar de solo a comandos.
Niveles de permisos
El espacio aislado es deny-by-default: a menos que se conceda explícitamente una ruta de acceso, un comando no puede usarlo. Cada ruta de la directiva tiene uno de estos tres niveles de permisos:
- Lectura y escritura : el comando puede leer y modificar archivos en esta ruta de acceso.
- Solo lectura : el comando puede leer archivos en esta ruta de acceso, pero no cambiarlos.
- Denegado : el comando no puede leer ni escribir en esta ruta de acceso, aunque una regla más amplia lo permita.
Dado que se deniega el acceso a menos que se conceda, Copilot debe conceder un comando todo lo que necesita legítimamente, los archivos del proyecto, las herramientas que ejecuta y las ubicaciones auxiliares, como directorios temporales, al tiempo que mantiene todo lo demás fuera de los límites.
Nota:
Estos niveles de permisos se aplican a cada proceso o operación de espacio aislado, pero se aplican de forma diferente: para los procesos secundarios de espacio aislado, el sistema operativo los aplica directamente, mientras que las propias herramientas integradas de lectura de archivos y edición de archivos de la CLI comprueban los mismos niveles de software, sin un backstop del sistema operativo.
Cómo se compila la directiva
Antes de que se inicie cada proceso aislado, Copilot CLI determina la política efectiva de ese proceso en función del directorio de trabajo actual, el entorno, la configuración y los permisos concedidos automáticamente. Esto restringe el proceso solo al acceso que necesita y significa que no tiene que administrar estas ubicaciones comunes usted mismo.
El directorio de trabajo
Cuando Incluir directorio de trabajo está habilitado en la configuración del sistema de archivos para el aislamiento local, como ocurre de forma predeterminada, se le concede acceso de lectura y escritura al directorio de trabajo actual. En un repositorio de Git, Copilot también agrega las concesiones de Git asociadas. Al desactivar esta configuración, se suprimen todas esas autorizaciones automáticas, por lo que debe agregar manualmente reglas de permiso para las rutas de Git y del proyecto necesarias. Consulte Configurar la configuración del entorno aislado local.
Nota:
Si obtiene Copilot de una organización de propiedad empresarial, un administrador puede desactivar la configuración Incluir directorio de trabajo y bloquearla, por lo que no puede volver a activarla. Consulte Configuración administrada por la empresa.
Herramientas en tu PATH
Para ejecutar un programa como python o git, el espacio aislado tiene que permitir que el comando vea el directorio en el que reside el programa. Cuando Permitir el acceso a las herramientas de desarrollo está habilitado —como ocurre de forma predeterminada—, Copilot concede acceso de solo lectura a los directorios enumerados en la variable de entorno PATH, junto con los directorios especificados por variables de herramientas relacionadas, como GOPATH, JAVA_HOME y PYTHONPATH. Solo lectura es el nivel adecuado para las herramientas externas: un comando debe ejecutar git, no modificarlo. Si desactiva la opción Permitir acceso a las herramientas de desarrollo, estos directorios ya no se autorizan automáticamente y deben estar contemplados en sus propias reglas de permiso. Para obtener la lista completa de las variables de entorno de PATH y de la cadena de herramientas que inspecciona el entorno aislado, así como la forma en que se interpreta cada una de ellas, consulte Referencia de comandos de la CLI de GitHub Copilot.
Ubicaciones del sistema y del perfil
En macOS, las ubicaciones estándar del sistema son de solo lectura para que los comandos puedan cargar bibliotecas compartidas y leer la configuración del sistema sin poder cambiarlas. Los directorios de aplicaciones de tu perfil de usuario también tienen acceso de solo lectura cuando está habilitada la opción Permitir acceso a las herramientas de desarrollo, de modo que los comandos puedan leer las herramientas que has instalado allí sin poder modificarlas.
Cachés del administrador de paquetes
Para permitir que las instalaciones y las compilaciones funcionen dentro del entorno aislado, Copilot también concede acceso a las cachés y los repositorios que usan los gestores de paquetes y las herramientas de desarrollo habituales: de solo lectura en la mayoría de las ubicaciones, y de lectura y escritura en determinadas ubicaciones con permisos de escritura, como las cachés de compilación y los almacenes de dependencias de los gestores de paquetes. En el /sandbox policy informe, aparece como acceso a la herramienta de desarrollo.
Repositorios Git
Cuando se trabaja en un subdirectorio de un repositorio Git, Copilot otorga acceso de lectura a todo el repositorio para que los comandos puedan ver el proyecto completo, al tiempo que limita el acceso de escritura al directorio de trabajo actual y al directorio .git de metadatos Git del repositorio. Esto permite que un comando lea todo el repositorio, pero mantiene los cambios limitados a la parte en la que estás trabajando.
Dado que el acceso de lectura abarca todo el repositorio, un comando de espacio aislado puede leer archivos fuera del subdirectorio actual, incluida cualquier información confidencial almacenada en otro lugar del proyecto. Para mantener las rutas de acceso específicas fuera de alcance, puede agregar reglas de denegación. Consulte Configurar la configuración del entorno aislado local.
Cuando las reglas de acceso se superponen
Dado que Copilot proporciona varias ubicaciones y puede añadir las suyas propias, las reglas pueden solaparse. Cuando lo hacen, el camino más específico gana. Por ejemplo, si /project es editable, pero se marca /project/secrets como de solo lectura, todo en /project permanece editable excepto /project/secrets. Esta es una forma útil de proteger una subcarpeta sensible.
Los solapamientos también se resuelven a tu favor cuando, de otro modo, un permiso por conveniencia supondría un obstáculo. Considere un proyecto de Python con un entorno virtual local (.venv) que aparece en PATH. Tratar ese directorio como una ubicación normal para herramientas de solo lectura haría que fuera de solo lectura, a pesar de que está dentro de tu proyecto con permiso de escritura, y un comando como pip install podría entonces fallar al intentar actualizar el entorno.
Copilot resuelve esto automáticamente: un permiso que añade automáticamente (como un directorio de herramientas en PATH) cede ante un permiso de lectura/escritura más amplio que ya lo cubre. Por lo tanto, un directorio local .venvdel proyecto, node_modules/.bino similar sigue siendo escribible como parte de tu espacio de trabajo.
Las reglas que usted configura siempre se conservan. Si marca una ruta de acceso como de solo lectura o la deniega, esa decisión sigue vigente aunque, de otro modo, la misma ruta de acceso se detectaría y se concedería automáticamente. Esto te ofrece una forma fiable de proteger una ubicación sensible; por ejemplo, denegar el acceso a un archivo .env para que ningún comando aislado pueda leer tus secretos.
Comprobación de lo que permite la directiva actual
Dado que la directiva se ensambla para cada directorio y comando, la manera más sencilla de ver el acceso que tiene es preguntar Copilot CLI. En una sesión, escriba:
/sandbox policy
/sandbox policy
Copilot imprime la política efectiva de tu directorio actual: las rutas de lectura y escritura, de solo lectura y denegadas que recibiría realmente un comando ejecutado desde aquí, junto con el acceso a la red y a las herramientas de desarrollo vigentes. Este es el resultado final tras combinar las asignaciones automáticas con su configuración y resolver cualquier solapamiento; no es solo una copia de su configuración guardada.
Algunas cosas que debe tener en cuenta al leer el informe:
- Refleja el directorio actual. Dado que los permisos se detectan en cada directorio, la misma configuración puede resolverse en rutas diferentes según desde dónde se ejecute.
- Si una ruta que ha configurado no existe en el disco, se omite de la directiva y se indica en una sección de Notas. Esto explica por qué es posible que una regla que haya agregado no tenga ningún efecto.
- Si el aislamiento está desactivado,
/sandbox policyse lo indica en lugar de mostrar una política, porque no hay restricciones en vigor.
Para comprobar únicamente si el aislamiento está activado en este momento, use /sandbox status. Para obtener más información sobre estos comandos, consulte Uso del aislamiento local.
Personalizar la directiva
Puede conceder rutas de acceso adicionales de lectura y escritura o de solo lectura, denegar rutas de acceso y cambiar otro comportamiento del sistema de archivos, ya sea desde el cuadro de diálogo o en el /sandbox config archivo de configuración. Después de realizar un cambio, ejecute /sandbox policy para confirmar el resultado. Para obtener instrucciones paso a paso, consulte Configurar la configuración del entorno aislado local.
Directivas administradas por la empresa
Si obtiene Copilot a través de una organización propiedad de una empresa, un administrador puede imponer una directiva del sistema de archivos mediante la configuración administrada. La configuración administrada actúa como una base restrictiva: puede requerir aislamiento, agregar rutas denegadas y limitar qué rutas puede conceder. Cuando se aplica una configuración administrada, el /sandbox config cuadro de diálogo lo muestra como un valor bloqueado (administrado) y /sandbox policy lo refleja en la directiva resuelta. Si la política efectiva permite eludir el aislamiento, un usuario puede desactivar explícitamente el aislamiento durante el resto de la sesión actual desde una solicitud activa de permiso para eludirlo. La exclusión voluntaria de esta sesión no modifica la política guardada.
A diferencia de la mayoría de los ajustes, donde prevalece un único origen, la directiva de espacio aislado se compone a partir de todos los orígenes vigentes al mismo tiempo. Los ajustes administrados pueden llegar simultáneamente a través de más de un canal —gestionados por el servidor, por MDM y basados en archivos— y se combinan entre sí, y con tus propios ajustes, aplicando el criterio más restrictivo en lugar de que una fuente prevalezca sobre otra: un interruptor obligatorio permanece activado, las rutas denegadas de todas las fuentes se acumulan y las rutas que se te permite autorizar solo pueden restringirse más. Para obtener más información, vea Configuración administrada por la empresa.