Skip to main content
Skip to content

Configuración administrada por la empresa

Comprenda el esquema de configuración administrada de empresa que usan los clientes Copilot.

Use esta referencia para comprender la configuración administrada para empresas para Copilot. La mayoría de los valores se pueden configurar en managed-settings.json. A continuación se indican las opciones de configuración que requieren la administración de dispositivos.

Para obtener instrucciones sobre cómo crear el archivo, consulte Introducción a la configuración administrada por la empresa.

Teclas compatibles

Clavepropósito
permissions.disableBypassPermissionsModeDesactiva el comportamiento de omisión o de permitirlo todo al estilo YOLO
permissions.denyBloquea operaciones específicas
permissions.askRequiere una aprobación humana nueva antes de que las operaciones específicas puedan continuar
permissions.allowPermite que determinadas operaciones continúen sin pedir confirmación
permissions.disableAssistedPermissionsModeImpide que los usuarios habiliten assisted permissions
permissions.defaultModeControla el modo de permiso predeterminado para las nuevas sesiones
features.computerUseControla si los usuarios pueden habilitar el uso del equipo
modelEstablece el modelo preferido como valor predeterminado para las nuevas conversaciones.
fusionTierEstablece el nivel de esfuerzo predeterminado para las nuevas conversaciones cuando el modelo seleccionado es fusion
autoTierEstablece el nivel de enrutamiento automático predeterminado para las nuevas conversaciones.
enabledPluginsHabilita o deshabilita complementos específicos por clave
extraKnownMarketplacesAgrega marketplaces de complementos a los que los usuarios pueden acceder
strictKnownMarketplacesRestringe la instalación del complemento a marketplaces enumerados explícitamente.
telemetryConfigura la exportación de OpenTelemetry y dirige los datos de uso Copilot a un colector que elija.
remoteControlRestringe si las sesiones hospedadas en este dispositivo se pueden controlar de forma remota, en función del estado de autorización de SSO del cliente de control para las organizaciones enumeradas. No afecta a la capacidad del usuario de controlar de forma remota las sesiones hospedadas en otros dispositivos.
forceRemoteSettingsRefreshRequiere una nueva obtención de configuración administrada por el servidor en el inicio del cliente.
allowedMcpServersDefine una lista de servidores MCP autorizados para ejecutarse. Se bloquea cualquier servidor que no coincida. Déjelo en blanco para permitir todos los servidores, sujeto a cualquier regla de denegación
deniedMcpServersDefine servidores MCP bloqueados incondicionalmente, aunque también coincidan con una entrada en . allowedMcpServers
sandboxAplica restricciones mínimas de sandbox local para la ejecución de comandos, el sistema de archivos y el acceso a la red, las credenciales y los servidores MCP y LSP locales. Requiere una versión mínima del cliente.

Compatibilidad con claves de cliente

| Clave | Copilot CLI | VS Code | El GitHub Copilot app | Copilot in the cloud (espacio aislado) | Copilot in the cloud (GitHub Actions) | JetBrains IDEs | | --- | --- | --- | --- | --- | --- | --- | | permissions.disableBypassPermissionsMode | | | | | | | | permissions.deny | | | | | | | | permissions.ask | | | | | | | | permissions.allow | | | | | | | | permissions.disableAssistedPermissionsMode | | | | | | | | permissions.defaultMode | | | | | | | | features.computerUse | | | | | | | | model | | | | | | | | fusionTier | | | | | | | | autoTier | | | | | | | | enabledPlugins | | | | | | | | extraKnownMarketplaces | | | | | | | | strictKnownMarketplaces | | | | | | | | telemetry | | | | | | | | remoteControl | | | | | | | | forceRemoteSettingsRefresh | | | | | | | | allowedMcpServers | | | | | | | | deniedMcpServers | | | | | | | | sandbox | | | | | | |

La compatibilidad con telemetry varía según la subpropiedad y el entorno de prueba. Consulte controles de captura para los clientes que admiten la captura específica.

Más información sobre Copilot in the cloud

Las sesiones en la nube se pueden ejecutar en espacios aislados o en GitHub Actions. La cobertura de directivas y configuraciones administradas por la empresa varía actualmente entre entornos. Cuando los usuarios pueden elegir entre estos entornos, los espacios aislados en la nube son los predeterminados. Sin embargo, actualmente, algunas interfaces solo se pueden ejecutar en GitHub Actions (por ejemplo, asignar una incidencia a Copilot o mencionar @Copilot en una solicitud de incorporación de cambios).

Las claves definidas en la tabla para Copilot in the cloud (sandbox) se admiten desde todas las superficies que admiten el inicio de sesiones en sandboxes en la nube. Como excepción, la tecla model solo se admite para las sesiones en la nube iniciadas desde el sitio web GitHub, Copilot CLI y VS Code.

allowedMcpServers y deniedMcpServers se aplican a los servidores MCP definidos en la configuración de usuario y la configuración del repositorio, pero no se aplican a los servidores MCP definidos en los perfiles de agente personalizados del repositorio. Sin embargo, puede impedir el uso de servidores MCP configurados en perfiles de agente personalizados asegurándose de que los dominios necesarios para iniciarlos no están permitidos por el firewall personalizado de nivel de repositorio o organización. Consulte Personalización o deshabilitación del firewall para GitHub Copilot.

Ejemplo de configuración

En el ejemplo siguiente se muestran estas claves en un archivo de configuración administrada.

{
  "features": {
    "computerUse": false
  },
  "model": "auto",
  "autoTier": "intelligence",
  "permissions": {
    "disableBypassPermissionsMode": "disable",
    "deny": [
      "Shell(rm -rf *)",
      "Read(~/.ssh/**)",
      "Edit(//etc/**)",
      "Domain(*.unapproved.example)"
    ],
    "ask": [
      "Shell(git push *)",
      "Edit(/src/**)",
      "Domain(api.github.com)"
    ],
    "allow": [
      "Shell(npm test *)",
      "Read(/src/**)",
      "Domain(registry.npmjs.org)"
    ]
  },
  "enabledPlugins": {
    "my-plugin@agent-skills": true
  },
  "extraKnownMarketplaces": {
    "agent-skills": {
      "source": {
        "source": "github",
        "repo": "OWNER/REPO"
      },
      "autoUpdate": true
    }
  },
  "strictKnownMarketplaces": [
    {
      "source": "github",
      "repo": "OWNER/REPO"
    }
  ],
  "telemetry": {
    "enabled": true,
    "endpoint": "https://otel-collector.example.com",
    "protocol": "http/protobuf",
    "capture": {
      "identity": true,
      "prompts": false,
      "responses": false,
      "toolArguments": false,
      "toolOutput": false,
      "policyDetail": false
    },
    "captureContent": false,
    "lockCaptureContent": true,
    "serviceName": "copilot",
    "resourceAttributes": {
      "deployment.environment": "production"
    },
    "headers": {
      "Authorization": "Bearer TOKEN"
    }
  },
  "remoteControl": {
    "mode": "requireSSO",
    "githubDotComOrganizations": ["ORG-NAME"]
  },
  "allowedMcpServers": [
    { "serverUrl": "https://api.githubcopilot.com/*" },
    { "serverCommand": ["npx", "@playwright/mcp@latest"] },
    { "serverCommand": ["cmd", "/c", "uvx", "markitdown-mcp"] }
  ],
  "deniedMcpServers": [
    {
      "serverCommand": [
        "npx",
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/"
      ]
    }
  ],
  "sandbox": {
    "enabled": true,
    "failIfUnavailable": true,
    "allowBypass": false,
    "sandboxMcpServers": true,
    "sandboxLspServers": true
  }
}

features.computerUse

Controla si los usuarios pueden habilitar el uso del equipo en GitHub Copilot CLI y el GitHub Copilot app. Establézcalo features.computerUse en false para impedir que los usuarios habiliten el uso del equipo. Una configuración local no puede invalidar esta restricción. Establezca el valor en true, o bien omita la clave, para permitir que los usuarios controlen el uso del ordenador mediante su configuración local.

enabledPlugins

Define complementos que se instalan o bloquean automáticamente para todos los usuarios empresariales. Cada entrada usa el formato PLUGIN-NAME@MARKETPLACE-NAME como clave, con un valor booleano: true para requerir que el complemento esté habilitado o false para requerir que se deshabilite. Consulte Acerca de los estándares de complementos administrados por la empresa.

Los valores administrados siempre tienen prioridad sobre los valores predeterminados del repositorio y las preferencias de los miembros. Los valores predeterminados del repositorio no pueden habilitar un complemento que la directiva administrada bloquee o use un marketplace que la directiva no permita.

extraKnownMarketplaces

Define marketplaces de complementos adicionales disponibles para los usuarios. Cada entrada es un objeto marketplace con nombre que contiene una source propiedad y un valor booleano opcional autoUpdate .

Establezca true en autoUpdate para requerir que los clientes actualicen periódicamente ese mercado y actualicen los complementos instalados procedentes de él. Establézcalo false en para requerir que las actualizaciones automáticas permanezcan deshabilitadas para ese marketplace. Si se omite autoUpdate, los clientes usan su comportamiento actual, ya sea el predeterminado o el configurado por el usuario.

Dado que la configuración administrada tiene prioridad, los usuarios no pueden invalidar un valor definido autoUpdate . La configuración solo se aplica a ese Marketplace, y las restricciones de strictKnownMarketplaces se siguen aplicando antes de las operaciones de actualización y refresco.

Se admiten los siguientes tipos de origen:

  • "github" : requiere repo en OWNER/REPO formato; opcional ref (rama, etiqueta o SHA) y path (subdirectorio)
  • "git" — requiere url; opcional ref y path
  • "directory" — requiere path

Consulte Acerca de los estándares de complementos administrados por la empresa.

Para las anulaciones del equipo empresarial gestionado por el servidor, envuelve el mapa completo de Marketplace en overridable:

{
  "extraKnownMarketplaces": {
    "overridable": {
      "enterprise-plugins": {
        "source": {
          "source": "github",
          "repo": "OWNER/REPO"
        }
      }
    }
  }
}

Después, un archivo de equipo de empresa puede proporcionar un mapa de Marketplace normal para reemplazar este mapa predeterminado. Incluya los marketplaces predeterminados que el equipo de Enterprise debe conservar. Si el equipo empresarial omite la clave, el valor predeterminado de la empresa permanece.

strictKnownMarketplaces

Restringe la instalación del complemento solo a los marketplaces definidos explícitamente por la empresa. Configurar esta clave deshabilita los mercados integrados. Un array vacío significa bloqueo completo. Cada entrada es un objeto de Marketplace con una source propiedad que indica el tipo de origen. Se admiten los siguientes tipos de origen:

  • "github" — requiere repo en OWNER/REPO formato; opcional ref y path
  • "git" — requiere url; opcional ref y path
  • "url": requiere url; objeto opcional headers
  • "npm" — requiere package
  • "file" — requiere path
  • "directory" — requiere path
  • "hostPattern": requiere hostPattern (regex que coincide con los hosts del marketplace)
  • "pathPattern" — requiere pathPattern (regex que coincida con las rutas del Marketplace)

Esta clave se puede invalidar para los equipos empresariales. Incluye la lista completa de elementos permitidos en overridable a nivel empresarial:

{
  "strictKnownMarketplaces": {
    "overridable": [
      { "source": "github", "repo": "OWNER/REPO" }
    ]
  }
}

Usa una matriz normal en el archivo del equipo de empresa para reemplazar la lista de permitidos predeterminada. Si se omite la clave, se conserva el valor predeterminado de la empresa. Una matriz vacía explícita, , []significa bloqueo completo, no una directiva no administrada.

model

Establece el modelo preferido como valor predeterminado para las nuevas conversaciones. Esto le permite elegir el modelo predeterminado que mejor se adapte a los flujos de trabajo de la empresa. Los usuarios todavía pueden seleccionar un modelo diferente por conversación.

  • Establezca "fusion" en model para usar Copilot Fusion como valor predeterminado, por lo que las nuevas sesiones eligen automáticamente un modelo o un patrón de ejecución, a menos que el usuario especifique un modelo diferente por conversación. Consulte Acerca de GitHub Copilot Fusion.
  • Establezca "auto" en model para usar auto model selection como valor predeterminado, de modo que las nuevas sesiones elijan un modelo automáticamente, a menos que el usuario especifique un modelo diferente para cada conversación. Consulte Acerca de GitHub Copilotauto model selection.
  • Establezca model en un modelo y una versión específicos para que ese modelo sea el predeterminado para las nuevas conversaciones, por ejemplo "kimi-k3".

Esta clave se invalida mediante la asignación de equipos empresariales. En tu managed-settings.json, utiliza la sintaxis { "overridable": "auto" } para especializar la configuración de la clave para un equipo empresarial. A continuación, puede establecer "model": "unmanaged" en un archivo de configuración del equipo empresarial, lo que proporciona una especialización que tiene prioridad sobre managed-settings.json para los miembros de ese equipo empresarial.

Nota:

model originalmente se documentó como permissions.model. Los clientes siguen leyendo el valor anidado permissions.model cuando falta la clave de nivel superior model, pero deben usar la clave de nivel superior model en las configuraciones nuevas.

fusionTier

Establece el nivel de esfuerzo predeterminado para las nuevas conversaciones cuando el modelo seleccionado es "fusion". Los valores aceptados, de los más restrictivos a los menos restrictivos, son "standard", "high", "max"y "unmanaged". Esta configuración no selecciona el propio modelo.

Esta configuración requiere estas versiones:

  • En Copilot CLI, requiere la versión 1.0.104-3 o posterior.
  • En VS Code, se requiere la versión 1.144.0 o posterior.
  • En GitHub Copilot app, se requiere 1.1.33-4 o posterior.

Establezca fusionTier en una cadena distinta de "unmanaged" para bloquear el nivel de esfuerzo frente a las sobrescrituras de usuario y del repositorio. Para proporcionar un valor predeterminado que los equipos empresariales pueden invalidar, use overridable:

{
  "model": "fusion",
  "fusionTier": { "overridable": "standard" }
}

Por ejemplo, un archivo de configuración de equipo puede establecer "fusionTier": "high". Si el equipo no establece fusionTier, se aplica el valor predeterminado de la empresa.

autoTier

Establece el nivel de enrutamiento predeterminado para las nuevas conversaciones cuando el modelo seleccionado es "auto". Los valores aceptados, de los más restrictivos a los menos restrictivos, son "efficiency", "balance", "intelligence"y "unmanaged". Esta configuración no selecciona el propio modelo.

En Copilot CLI, esta configuración requiere la versión 1.0.87-0 o posterior. En VS Code, requiere la versión 1.140.0 o posterior.

Establezca autoTier en una cadena distinta de "unmanaged" para bloquear el nivel contra anulaciones de usuario y repositorio. Para proporcionar un valor predeterminado que los equipos empresariales pueden invalidar, use overridable:

{
  "model": "auto",
  "autoTier": { "overridable": "balance" }
}

Por ejemplo, un archivo de configuración de un equipo empresarial puede establecer "autoTier": "intelligence". Si el equipo empresarial no establece autoTier, se aplica el valor predeterminado de la empresa.

forceRemoteSettingsRefresh

Requiere una nueva descarga de la configuración administrada por el servidor al iniciarse en GitHub Copilot app, Copilot CLI y el VS Code. Establezca forceRemoteSettingsRefresh en true para habilitar este requisito.

En Copilot CLI y GitHub Copilot app, esto omite la caché normal de una hora y evita recurrir a una directiva anterior almacenada en caché si se produce un error en la descarga. Una recarga fallida deja sin confirmar la directiva, por lo que las operaciones afectadas están restringidas. En VS Code, las funciones de Copilot quedan bloqueadas hasta que la actualización necesaria se realice correctamente. Por lo tanto, los usuarios necesitan una conexión de red al iniciar el cliente.

Para que el requisito se aplique desde el primer inicio de un dispositivo, entréguelo a través de la configuración administrada por MDM o basada en archivos. Un valor administrado por el servidor puede requerir actualizaciones en los siguientes arranques después de que el cliente lo haya recibido. Las secuencias de comandos auxiliares de políticas no pueden establecer esta clave.

En managed-settings.json, use un valor booleano JSON, por ejemplo "forceRemoteSettingsRefresh": true. Al configurar Copilot CLI a través del registro de Windows o las preferencias administradas de macOS, almacene este valor como una cadena que contenga true o false. No use un DWORD ni un booleano nativo.

permissions

Denegar, preguntar, permitir

En VS Code, estas reglas de permisos granulares se aplican a Copilot las sesiones que usan el host del agente. La permissions.disableBypassPermissionsMode configuración tiene compatibilidad más amplia VS Code y no se limita al host del agente.

Las teclas permissions.deny, permissions.ask y permissions.allow usan la precedencia denegar > preguntar > permitir. Si una fuente administrada por MDM, por servidor o basada en archivos define alguna regla de permisos —o si cualquier fuente aplicable declara una lista allow—, una operación compatible no coincidente requerirá, por defecto, una aprobación. De lo contrario, sigue el flujo habitual de permisos.

  • deny bloquea operaciones específicas, independientemente de si también coinciden con una ask regla o allow . Una regla de denegación establecida por cualquier fuente de configuración administrada bloquea la operación para todos los usuarios, independientemente de las reglas de las demás fuentes.
  • ask requiere una aprobación única y nueva antes de que pueda continuar una operación específica, incluso si la operación se permitiría de otro modo. Una regla ask administrada no puede cumplirse mediante el modo de omisión (también conocido como modo permitir todo o modo YOLO), una configuración de aprobación automática, un hook u otro atajo de aprobación, ni una autorización persistida de una aprobación anterior. La misma operación volverá a solicitarse la próxima vez que se solicite.
  • allow permite que una operación específica continúe sin una solicitud. La lista de permitidos efectiva es la intersección de todas las fuentes que declaran una, no la unión. Un origen que no declara una allow lista no pone ninguna restricción propia en esta clave.

Las reglas usan los siguientes selectores:

SelectorCoincidencias
Shell(...)Comandos de shell. Usa <command> * (por ejemplo, git push *) para hacer coincidir un prefijo de comando; de lo contrario, la regla coincide exactamente con el texto.
Bash(...) es un alias de compatibilidad para Shell(...).
PowerShell(...) utiliza la misma familia de selectores con coincidencia de comandos que no distingue entre mayúsculas y minúsculas.
Read(...)Rutas de lectura y visualización de archivos. Admite patrones globales y estas raíces: // para la raíz del sistema de archivos, / para la raíz del área de trabajo, ~/ para el directorio principal y ./ para el directorio de trabajo actual.
Edit(...)Las rutas de escritura y edición de archivos se comparan de la misma manera que Read(...).
Write(...) es un alias de Edit(...).
Domain(...)Orígenes de red. Un host sin especificar utiliza HTTPS de forma predeterminada, y la coincidencia de hosts no distingue entre mayúsculas y minúsculas. Use *. para incluir subdominios; por ejemplo, *.example.com coincide con example.com y sus subdominios.

Cada subclave puede anularse para los equipos empresariales. Establezca el valor de empresa en { "overridable": <VALUE> }, reemplazando <VALUE> por la matriz de reglas. A continuación, use la sintaxis normal para definir reglas de reemplazo en el archivo de cada equipo de empresa.

disableBypassPermissionsMode

Úselo para evitar que los usuarios habiliten el modo bypass. El modo de omisión permite a un agente ejecutar comandos, acceder a archivos y capturar direcciones URL sin solicitar aprobación.

Establezca esta clave en "disable" para desactivar el modo bypass.

Esta configuración no impide assisted permissions. Las operaciones de solo lectura y las solicitudes permitidas por las reglas de permisos aplicables todavía pueden continuar sin un aviso. Las reglas administradas ask y deny siguen aplicándose. Para obtener más información sobre assisted permissions, consulta Permitir que los comandos seguros se ejecuten sin aprobación manual.

Si establece disableBypassPermissionsMode en "disable", los usuarios no pueden activar el modo bypass:

  • En Copilot CLI, todas las opciones de la línea de comandos para permitir todos los permisos (--yolo, --allow-all, y las opciones individuales --allow-all-tools, --allow-all-pathsy --allow-all-urls ) no tienen ningún efecto en el inicio y no pueden conceder permisos elevados. El comando de barra diagonal /permissions allow-all y sus alias /yolo y /allow-all también están bloqueados. Esta configuración no bloquea /permissions assisted ni /allow-all auto. La permissions.disableAssistedPermissionsMode configuración controla si los usuarios pueden habilitar assisted permissions.
  • En VS Code, la configuración global de aprobación automática (chat.tools.global.autoApprove) está desactivada y no se puede volver a habilitar.
  • En GitHub Copilot app, las sesiones no pueden usar Aprobar todo para los permisos de herramientas, incluso si un usuario lo selecciona como su valor predeterminado en Configuración > Sesiones.

Para esta clave, el valor más restrictivo de todas las capas de directiva gana. Cualquier ajuste establecido por cualquier capa surte efecto y no puede relajarse. Una capa de autoridad inferior o una invalidación por equipo no puede volver a establecer esta clave en no administrada una vez que cualquier capa deshabilita el modo de omisión.

Nota:

Si disableBypassPermissionsMode se establece en un valor que Copilot CLI no reconoce, la CLI registra el problema y aplica "disable" como valor predeterminado de fallo cerrado.

disableAssistedPermissionsMode

Establezca permissions.disableAssistedPermissionsMode en true para impedir que los usuarios habiliten assisted permissions. Esta configuración no deshabilita el modo bypass.

defaultMode

Establezca permissions.defaultMode en "manual", "assisted"o "allow-all" para elegir el modo de permiso predeterminado para las nuevas sesiones. Si el modo seleccionado no está disponible o bloqueado por la directiva, la sesión comienza con la aprobación manual.

Esta configuración establece un valor predeterminado, no un modo bloqueado. Una opción explícita permitida para una sesión tiene prioridad sobre el valor predeterminado administrado. Las sesiones reanudadas mantienen su modo guardado, sujeto a restricciones de directiva actuales.

En Copilot CLI, este valor predeterminado administrado tiene prioridad sobre la configuración de defaultPermissionMode del usuario.

Telemetría

Configura la exportación de OpenTelemetry, dirigiendo los datos de uso Copilot a un colector que elija.

Consulte la tabla de teclas admitidas para la compatibilidad con clientes.

Cuando establece la propiedad telemetry, la telemetría Copilot se envía al punto de conexión que especifique. Se admiten las siguientes subpropiedades:

  • enabled: se establece en true para activar la exportación de telemetría o false para desactivarla.
  • endpoint: la dirección URL del recopilador de OTLP (por ejemplo, https://otel-collector.example.com).
  • protocol: protocolo de transporte para la exportación de telemetría. Los valores aceptados son: "http/json" y "http/protobuf".
  • capture: un objeto con controles independientes y específicos para la identidad y el contenido confidencial. Cada subpropiedad tiene como valor predeterminado false. Para obtener más información, consulte Controles de captura.
  • captureContent: abreviatura heredada que habilita o deshabilita las clases prompts, responses, toolArguments, toolOutput y policyDetail de captura en conjunto. No afecta a identity. Una subpropiedad configurada capture explícitamente tiene prioridad sobre captureContent para esa clase.
  • lockCaptureContent: se establece en true para evitar que la configuración local habilite una clase de contenido heredada a menos que configure explícitamente esa clase o captureContent en el objeto administrado telemetry . Esta propiedad no controla la identidad.
  • serviceName: una etiqueta para el nombre del servicio de telemetría (por ejemplo, "copilot").
  • resourceAttributes: un objeto de los atributos de recursos openTelemetry que se van a asociar a todos los datos de telemetría exportados (por ejemplo, {"deployment.environment": "production"}).
  • headers: un objeto de encabezados HTTP literales que se van a incluir con cada solicitud de telemetría (por ejemplo, un Authorization encabezado para el recopilador). Debe configurar endpoint en el mismo telemetry objeto. Los valores de encabezado no se incluyen en los registros ni en la salida de estado. Utilice HTTPS cuando los encabezados contienen credenciales porque HTTP envía valores en texto no cifrado.
  • headersProvider: objeto que ejecuta un comando para proporcionar encabezados OTLP nuevos o false para deshabilitar encabezados dinámicos. Un asistente administrado invalida a un asistente de usuario y los elementos estáticos administrados headers tienen prioridad sobre la salida del asistente del usuario. Esta propiedad se aplica a Copilot CLI. Para conocer los campos y el comportamiento, consulte Referencia de comandos de la CLI de GitHub Copilot.

Los valores administrados telemetry tienen prioridad sobre la configuración local, la configuración del SDK y las variables de entorno. Si más de un origen administrado define telemetry, el origen de prioridad más alta proporciona el objeto administrado telemetry completo. Los objetos de orígenes administrados de prioridad inferior no se combinan con este.

Controles de captura

Utilice capture.identity cuando necesite atribuir la actividad del agente sin recopilar prompts, respuestas o contenido de herramientas. Utilice las otras clases de captura para recopilar solo el contenido adicional necesario para la auditoría o investigación.

Los controles de captura granulares se admiten en las sesiones Copilot CLI, GitHub Copilot app y VS Code mediante Agent Host. VS CodeEl entorno de ejecución del agente local admite capture.identity y la configuración heredada captureContent, pero no aplica de forma independiente prompts, responses, toolArguments, toolOutput ni policyDetail.

ClaveDatos capturados
identityEl nombre de la cuenta autenticada Copilot como user.name, la cuenta del sistema operativo local como process.user.namey el nombre del equipo local como host.name. El nombre de la cuenta es actualmente el GitHub nombre de inicio de sesión. Esta configuración no afecta al atributo pseudoanónimo enduser.pseudo.id.
promptsEl texto de indicaciones del usuario, del sistema y del desarrollador, y la entrada del modelo asociada, incluidos los datos adjuntos admitidos, los resúmenes de compactación, el contenido de la habilidad y el contexto del área de trabajo.
responsesTexto de respuesta del asistente y contenido de razonamiento compatible del agente de nivel superior y los subagentes.
toolArgumentsArgumentos de herramienta sin procesar, comandos, recursos denegados, nombres de proceso, descripciones de herramientas y esquemas, e identificadores sin procesar para servidores MCP, complementos, hooks, servidores y herramientas.
toolOutputContenido del resultado de la herramienta y detalles de errores de ejecución de herramientas, hooks, servidores MCP y subagentes.
policyDetailDetalles de la directiva sin límites, como matrices de rutas de acceso del sistema de archivos de espacio aislado sin formato. El estado de directiva Delimitado, los recuentos, los resultados y las clasificaciones siguen estando disponibles cuando esta configuración está establecida en false.

Por ejemplo, los siguientes atributos de configuración se pueden rastrear hasta un usuario y una máquina sin capturar mensajes, respuestas, contenido de herramientas o detalles de directiva sin procesar:

{
  "telemetry": {
    "capture": {
      "identity": true
    }
  }
}

Advertencia

El contenido capturado puede incluir código fuente, contenido de archivos, prompts, comandos, resultados de herramientas, identificadores MCP y rutas de acceso a áreas de trabajo, perfiles de usuario o archivos que pueden contener secretos. Habilite solo las clases de captura necesarias para el caso de uso y envíe los datos a un recopilador aprobado.

remoteControl

Restringe si Copilot las sesiones hospedadas en un dispositivo se pueden controlar de forma remota. Esto no afecta a la capacidad de un usuario de controlar de forma remota sus sesiones hospedadas en otros dispositivos.

  • mode: Se establece en "disabled" para evitar el control remoto de sesiones en el dispositivo, "requireSSO" para permitir solo el control remoto desde un cliente autorizado mediante SSO para las organizaciones enumeradas en githubDotComOrganizations, o "enabled" para permitirlo sin restricciones.
  • githubDotComOrganizations: Una lista de nombres de usuario de la organización. Obligatorio cuando mode es "requireSSO".

allowedMcpServers

Define una lista de servidores MCP autorizados para ejecutarse. Cuando se establece, solo se permiten servidores que coincidan con al menos una entrada. Se bloquea cualquier servidor que no coincida.

Omita esta clave por completo para permitir todos los servidores, según lo especificado en deniedMcpServers. Establézcalo en una matriz vacía para bloquear todos los servidores excepto los servidores predeterminados integrados.

Cuando varias fuentes de configuración definen allowedMcpServers, la lista de elementos permitidos resultante es la intersección de todas las fuentes. Un servidor debe estar permitido por todos los orígenes para poder ejecutarse.

Cada entrada debe contener exactamente una propiedad de coincidencia.

PropiedadComportamiento de coincidenciaServidores aplicables
serverNameCoincide exactamente con la etiqueta de servidor asignada por el usuario. No se admiten caracteres comodín. Las entradas de la lista de permitidos distinguen mayúsculas de minúsculas y se limitan a letras, números y los caracteres _, ., / y -, por lo que se aceptan nombres de registro como microsoft/playwright-mcp. Dado que los usuarios eligen nombres de servidor, use serverUrl o serverCommand cuando necesite aplicar la identidad de un servidor.Cualquier servidor. Los servidores en memoria solo pueden usar serverName.
serverUrlCoincide con una dirección URL del servidor remoto. Admite caracteres comodín * para subdominios o prefijos de ruta de acceso, por ejemplo, https://mcp.example.com/* o https://*.internal.example.com/*.Servidores remotos que se conectan a través de eventos HTTP o enviados por el servidor (SSE). Esta propiedad no se aplica a los servidores locales, incluso si tienen una dirección URL.
serverCommandCoincide con el comando exacto y cada argumento de un servidor local, por ejemplo, ["npx", "-y", "my-mcp-server"]. No se admiten comodines ni la expansión de la línea de comandos.Servidores locales que usan la entrada y salida estándar (stdio). Esta propiedad no se aplica a los servidores remotos, incluso si tienen un comando.

Esta clave se puede invalidar para los equipos empresariales. Encapsula los objetos matcher debajo de overridable en el nivel empresarial y, a continuación, usa la sintaxis normal para definir listas de permitidos y listas de denegación en el archivo de cada equipo empresarial.

Canonización de URL

Antes de comparar un serverUrl patrón con una dirección URL de servidor, el cliente normaliza ambos valores:

  • Convierte el esquema y el host en minúsculas.
  • Convierte los nombres de host internacionalizados o Unicode en Punycode.
  • Quita el puerto predeterminado para :80 HTTP o :443 HTTPS.
  • Descodifica octetos de host codificados por porcentaje. Por ejemplo, %65vil se convierte en evil.
  • Elimina los fragmentos de URL y los puntos al final de los nombres DNS.
  • Impide que los caracteres comodín del componente de autoridad coincidan más allá del límite / hacia la ruta.

deniedMcpServers

Define servidores MCP bloqueados incondicionalmente. Un servidor que coincida con cualquier entrada se bloquea incluso si también coincide con una entrada en allowedMcpServers. Las reglas de denegación siempre tienen prioridad sobre las reglas de permiso.

Los servidores propios Copilot, como el servidor MCP integrado GitHub, están exentos de las reglas de denegación y no se pueden bloquear.

Cuando varios orígenes de configuración definen deniedMcpServers, la lista de denegación efectiva es la unión de todos los orígenes. Un servidor bloqueado por cualquier origen está bloqueado para todos.

Cada entrada usa las mismas serverNamepropiedades , serverUrlo serverCommand descritas en allowedMcpServers.

sandbox

Aplica restricciones mínimas de espacio aislado local para Copilot CLI, sesiones de Host del agente Copilot en VS Code, y GitHub Copilot app. La configuración de espacio aislado administrado impone restricciones en lugar de valores predeterminados:

  • Para las configuraciones de activación forzada, un valor administrado de true impone la configuración. false o la omisión no modifica la configuración del usuario.
  • Para la configuración de funcionalidad, un valor administrado de false prohíbe la funcionalidad. true o la omisión no modifica la configuración del usuario.
  • Las listas de rutas de acceso de lectura y escritura administradas y de solo lectura restringen las concesiones configuradas por el usuario, mientras que las rutas de acceso denegadas administradas se agregan a las denegaciones configuradas por el usuario.

En VS Code la versión 1.138.0 y posteriores, esta configuración se aplica a Copilot las sesiones que usan el espacio aislado integrado del host del agente. Esta compatibilidad no se extiende a todos los tipos de sesión de chat o terminal en VS Code. En la versión 1.140.0 de VS Code y posteriores, establecer sandbox.enabled en true impide que los usuarios desactiven el espacio aislado con el botón de alternancia del espacio aislado de la sesión. Si la directiva permite la omisión, los usuarios todavía pueden desactivarla para la sesión actual al responder a un aviso de permisos de omisión de sandbox. Esto no cambia la política de la organización.

Para las sesiones en el Copilot app, el entorno de ejecución insertado analiza, combina y aplica el objeto administrado sandbox completo, incluidas las propiedades que no están disponibles en la configuración del repositorio de la aplicación. La aplicación muestra la configuración del repositorio del usuario, no la directiva administrada efectiva completa y no muestra bloqueos administrados por configuración.

Se admiten las siguientes subpropiedades:

  • enabled: true requiere aislamiento de forma predeterminada. Los usuarios no pueden deshabilitarlo a través de su configuración o la opción --no-sandbox de la CLI. En el /sandbox off, la configuración del repositorio y el comando GitHub Copilot app no pueden invalidarlo. Si la directiva efectiva permite la omisión, un usuario todavía puede deshabilitar el aislamiento para el resto de la sesión actual desde una solicitud de permiso activa para omitir el aislamiento. En Copilot CLI, también pueden usar /sandbox disable para esta exclusión de solo sesión. Ninguna de las dos cambia la directiva guardada.
  • failIfUnavailable: true, junto con enabled: true, convierte en obligatorio el entorno aislado administrado. Si Copilot no puede validar, compilar o aplicar la política de aislamiento con un backend de aislamiento disponible, bloquea la ejecución del modelo y de las herramientas en lugar de permitir que los comandos fallen o se ejecuten sin aislamiento. Esta propiedad no habilita el entorno aislado por sí misma.
  • allowBypass: false impide que los comandos individuales se ejecuten fuera del entorno aislado y evita que los usuarios desactiven el entorno aislado durante el resto de la sesión actual desde una solicitud de permiso activa para omitir el entorno aislado. En Copilot CLI, también impide que los usuarios desactiven el aislamiento con /sandbox disable.
  • addCurrentWorkingDirectory: false impide que el entorno de ejecución añada automáticamente el directorio de trabajo actual a las rutas de lectura/escritura de la zona protegida.
  • sandboxMcpServers: true requiere que los servidores MCP locales iniciados en la sesión se ejecuten en el entorno aislado. Los servidores MCP remotos no se ejecutan en el espacio aislado local.
  • sandboxLspServers: true requiere que los servidores de lenguaje iniciados en la sesión se ejecuten en el espacio aislado.
  • auth.git: false impide que el entorno de ejecución inyecte un token GitHub para las operaciones de Git mediante HTTPS autenticadas en el espacio aislado.
  • auth.gh: false impide que el entorno de ejecución inyecte un token GitHub para GitHub CLI en el espacio aislado.
  • allowDevToolAccess: false impide el acceso automático a la configuración de herramientas de desarrollo, las memorias caché, los registros y las cadenas de herramientas. Estas ubicaciones pueden contener credenciales o tokens del Registro de paquetes. Deshabilitar el acceso puede provocar un error en la restauración de paquetes, las operaciones del Registro autenticadas o las compilaciones que usan cachés compartidas a menos que conceda explícitamente las rutas de acceso necesarias.
  • learningMode: controla si los comandos en espacio aislado en los hosts de Windows compatibles registran el acceso bloqueado o registran y lo permiten. Vea sandbox.learningMode.
  • userPolicy: objeto que configura restricciones de seatbelt específicas del sistema de archivos, la red y macOS. Las propiedades admitidas se describen en las secciones siguientes.

En un host de la CLI no compatible, se puede rechazar lo administrado por el servidor enabled: true a menos que failIfUnavailable: true también requiera el cumplimiento. La MDM nativa, la configuración administrada basada en archivos y la configuración del asistente de directivas siguen aplicando enabled: true, por lo que los comandos en zona protegida fallan en lugar de ejecutarse sin zona protegida. Cuando se requieren enabled y failIfUnavailable, la CLI bloquea la ejecución del modelo y de las herramientas si no puede establecer el cumplimiento. Resuelva el problema notificado de host o directiva y, a continuación, inicie una nueva sesión.

Para las anulaciones del equipo de empresa gestionadas por el servidor, encapsula todo el objeto sandbox en overridable:

{
  "sandbox": {
    "overridable": {
      "enabled": true,
      "allowBypass": false
    }
  }
}

El elemento contenedor debe ser la única propiedad directamente en el interior de sandbox. Las subpropiedades individuales, como sandbox.enabled, no pueden usar sus envoltorios overridable propios. El objeto de espacio aislado normal de un archivo de equipo de empresa reemplaza todo el valor predeterminado encapsulado, por lo que incluye todas las restricciones que deben permanecer. Omitir sandbox mantiene el valor predeterminado empresarial.

sandbox.learningMode

Controla el registro de acceso para comandos de espacio aislado en Windows. Esta configuración no tiene ningún efecto cuando el espacio aislado está desactivado o el host de Windows no admite la grabación de acceso.

  • "deny" (valor predeterminado): aplica restricciones de proceso y sistema de archivos y registra los accesos bloqueados.
  • "allow": registra y permite el acceso al sistema de archivos y a los procesos que, de lo contrario, estaría bloqueado. Las restricciones de red permanecen vigentes. Este modo no proporciona protección normal del sistema de archivos ni de procesos.

El valor "allow" solo se acepta a través de la administración nativa de dispositivos Windows, como Intune o el registro de Windows. Se ignora en managed-settings.json. Un valor de cualquier origen administrado prevalece.

sandbox.userPolicy.filesystem

Configura el acceso al sistema de archivos para los procesos que se ejecutan en un entorno aislado. Las rutas deben ser absolutas. Las listas de concesión administradas se comparan con las listas configuradas por el usuario por cadena de ruta de acceso exacta, no por cobertura de ruta de acceso primaria o secundaria.

  • readwritePaths: Una lista de rutas que los procesos aislados pueden leer y escribir. Una ruta de acceso configurada por el usuario permanece disponible solo si su cadena exacta también aparece en todos los orígenes administrados que especifican esta propiedad. Una matriz gestionada vacía elimina todos los permisos de acceso de lectura/escritura a rutas configurados por el usuario, pero no elimina el acceso concedido por separado, como los directorios temporales o el directorio de trabajo actual.
  • readonlyPaths: Una lista de rutas que los procesos aislados pueden leer, pero no escribir. Una ruta de acceso configurada por el usuario permanece disponible solo si su cadena exacta también aparece en todos los orígenes administrados que especifican esta propiedad. Una matriz administrada vacía quita todas las concesiones de ruta de acceso de solo lectura configuradas por el usuario, pero no quita el acceso ensamblado por separado.
  • deniedPaths: Array de rutas a las que los procesos en entorno aislado no pueden acceder. Un valor administrado se agrega a, en lugar de reemplazar, las rutas de acceso denegadas de un usuario.

sandbox.userPolicy.network

Configura el acceso a la red para los procesos aislados.

  • allowOutbound: false bloquea el acceso de red saliente.
  • allowLocalNetwork: false restringe el acceso a la red local. Su efecto en los comandos de espacio aislado difiere según el sistema operativo. Windows las reglas de proxy y host requieren acceso a la red local, por lo que una directiva que las combina con false impide que se inicien esos comandos.
  • allowedHosts: una lista de nombres de host o direcciones IP a las que pueden acceder los procesos aislados. Una lista no vacía bloquea los hosts que no coinciden. Las entradas pueden ser nombres de host exactos, direcciones IP exactas, *.example.com para subdominios, pero no para el dominio raíz, o * para cada host. No incluya direcciones URL ni puertos. Las listas de permitidos administradas y de usuario se combinan de forma restrictiva. Si no tienen hosts superpuestos, se denegará el acceso a todos los hosts.
  • blockedHosts: Una lista de nombres de host o direcciones IP a los que no pueden acceder los procesos aislados. Los hosts bloqueados tienen prioridad sobre los hosts permitidos y el bloqueo de un dominio también bloquea sus subdominios.
  • proxy: Un objeto que dirige el tráfico de red aislado a través de un proxy HTTP externo. Establezca proxy.url en la dirección URL del proxy. La compatibilidad de la plataforma y su implementación varían.

En Copilot CLI, las reglas de host y los proxies upstream usan un proxy local integrado. En macOS y Linux, el espacio aislado impide que los programas lo eludan con conexiones directas. En Windows, el espacio aislado se basa en programas que respetan la configuración del proxy. Como resultado, en Windows, estos controles no proporcionan la misma protección contra las conexiones directas. Para conocer los requisitos y las limitaciones de la plataforma, consulte Configurar la configuración de red.

sandbox.userPolicy.seatbelt

Configura las opciones de seatbelt específicas de macOS.

  • keychainAccess: false impide que los procesos aislados accedan al Llavero de macOS.

Exigencia de versión mínima del cliente para sandbox

Al agregar la sandbox clave a la configuración administrada, Copilot aplica un espacio aislado local para todos los usuarios del ámbito. Estos usuarios deben usar una Copilot versión de cliente que admita el espacio aislado local. Hasta que un usuario actualice su cliente a al menos la versión mínima admitida, sus conexiones a Copilot se bloquean.

Cliente compatibleVersión mínima
VS Code
1.141.0
CLI de Copilot
1.0.93
Aplicación de GitHub Copilot
1.1.26