Skip to main content
Skip to content

Управляемые корпоративными настройками

Общие сведения о схеме управляемых параметров предприятия, используемой Copilot клиентами.

Используйте эту ссылку для понимания корпоративных управляемых Copilotпараметров. Большинство параметров можно настроить в managed-settings.json. Ниже приведены параметры, требующие управления устройствами.

Инструкции по созданию файла см. в разделе Начало работы с корпоративными параметрами.

Поддерживаемые ключи

КлючPurpose
permissions.disableBypassPermissionsModeОтключает обход или поведение YOLO-style allow-all
permissions.denyБлоки конкретных операций
permissions.askТребуется новое утверждение человека, прежде чем конкретные операции могут продолжиться
permissions.allowРазрешает выполнение определенных операций без запроса
permissions.disableAssistedPermissionsModeЗапрещает пользователям включать assisted permissions
permissions.defaultModeУправляет режимом разрешений по умолчанию для новых сеансов
features.computerUseОпределяет, могут ли пользователи включить использование компьютера
modelЗадает предпочитаемую модель в качестве значения по умолчанию для новых бесед
fusionTierЗадает уровень усилий по умолчанию для новых бесед при выборе модели fusion
autoTierЗадает уровень автоматической маршрутизации по умолчанию для новых бесед
enabledPluginsВключает или отключает определенные подключаемые модули по ключу
extraKnownMarketplacesДобавляет подключаемые платформы, к которым пользователи могут получить доступ
strictKnownMarketplacesОграничивает установку подключаемого модуля явным образом перечисленными marketplace
telemetryНастраивает экспорт OpenTelemetry, маршрутизацию Copilot данных об использовании в сборщик по вашему усмотрению
remoteControlОграничивает возможность удаленного управления сеансами, размещенными на этом устройстве, на основе состояния авторизации единого входа клиента для перечисленных организаций. Не влияет на возможность удаленного управления сеансами, размещенными на других устройствах
forceRemoteSettingsRefreshТребуется получение новых параметров, управляемых сервером при запуске клиента
allowedMcpServersОпределяет список разрешений серверов MCP, разрешенных для запуска. Любой сервер, не соответствующий, заблокирован. Опущено разрешить все серверы, при условии каких-либо правил запрета
deniedMcpServersОпределяет серверы MCP, которые безусловно заблокированы, даже если они также соответствуют записи в allowedMcpServers
sandboxПрименяет минимальные ограничения локальной песочницы для выполнения команд, файловой системы и сетевого доступа, учетных данных и локальных серверов MCP и LSP. При условии минимальных требований к версии клиента.

Поддержка клиентов по ключу

| Ключ | Copilot CLI | VS Code | GitHub Copilot app | Copilot in the cloud (песочница) | 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 | | | | | | |

telemetry Поддержка зависит от вложенных свойств и использования. См. элементы управления "Запись " для клиентов, поддерживающих точное захват.

Дополнительные сведения Copilot in the cloud

Облачные сеансы могут выполняться в песочницах или в GitHub Actions. Охват политик и управляемых параметров предприятия в настоящее время зависит от сред. Где пользователи могут выбирать между этими средами облачные песочницы по умолчанию. Однако в настоящее время некоторые интерфейсы могут выполняться GitHub Actions только (например, назначение проблемы Copilot или упоминание @Copilot в запросе на вытягивание).

Ключи, определенные в таблице дляCopilot in the cloud (песочницы), поддерживаются со всех поверхностей, которые поддерживают запуск сеансов в облачных песочницах. В качестве исключения model ключ поддерживается только для облачных сеансов, запущенных с GitHub веб-сайта, Copilot CLIи VS Code.

allowedMcpServers и deniedMcpServers применяется к серверам MCP, определенным в параметрах пользователя и параметрах репозитория, но не применяются к серверам MCP, определенным в профилях пользовательского агента репозитория. Однако можно предотвратить использование серверов MCP, настроенных в профилях пользовательских агентов, гарантируя, что все необходимые домены для запуска не разрешены пользовательским брандмауэром на уровне организации или репозитория. См . раздел AUTOTITLE.

Пример конфигурации

В следующем примере показаны эти ключи в одном управляемом файле параметров.

{
  "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

Определяет, могут ли пользователи включать и использовать GitHub Copilot CLIGitHub Copilot appкомпьютеры. Установите для features.computerUse``false предотвращения использования компьютера пользователями. Локальный параметр не может переопределить это ограничение. Задайте значение trueили опустите ключ, чтобы пользователи могли управлять компьютером с помощью локальных параметров.

enabledPlugins

Определяет подключаемые модули, которые автоматически устанавливаются или блокируются для всех корпоративных пользователей. Каждая запись использует формат PLUGIN-NAME@MARKETPLACE-NAME в качестве ключа с логическим значением: true для включения подключаемого модуля или false его отключения. См . раздел AUTOTITLE.

Управляемые значения всегда имеют приоритет над значениями по умолчанию репозитория и предпочтениями участников. По умолчанию репозиторий не может включить подключаемый модуль, который блокирует управляемые политики или использовать Marketplace, которая запрещает политику.

extraKnownMarketplaces

Определяет дополнительные подключаемые платформы подключаемых модулей, доступные пользователям. Каждая запись — это именованный объект Marketplace, source содержащий свойство и необязательное autoUpdate логическое значение.

true Установите для autoUpdate того, чтобы клиенты периодически обновляли этот marketplace и обновляли установленные подключаемые модули, полученные из него. Установите для него false значение, чтобы автоматические обновления оставались отключенными для этой платформы. Если не указано autoUpdate, клиенты используют существующее поведение по умолчанию или настроенное пользователем поведение.

Так как управляемые параметры имеют приоритет, пользователи не могут переопределить определенное autoUpdate значение. Этот параметр применяется только к этой платформе, и все ограничения, которые strictKnownMarketplaces по-прежнему применяются перед операциями обновления и обновления.

Поддерживаются следующие типы источников:

  • "github" — требуется repo формат OWNER/REPO ; необязательный ref (ветвь, тег или SHA) и path (подкаталог)
  • "git"— требуется; необязательно url``ref иpath
  • "directory" — требуется path

См . раздел AUTOTITLE.

Для переопределений группы предприятия, управляемой сервером, заключите полную карту Marketplace в overridable:

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

Затем файл группы предприятия может предоставить обычную карту Marketplace для замены этого по умолчанию. Включите все платформы по умолчанию, которые должна хранить команда предприятия. Если команда предприятия окупит ключ, по умолчанию по умолчанию остается корпоративный.

strictKnownMarketplaces

Ограничивает установку подключаемого модуля только в Marketplace, явно определенных предприятием. Установка этого ключа отключает встроенные marketplace. Пустой массив означает полную блокировку. Каждая запись — это объект Marketplace со свойством source , указывающим тип источника. Поддерживаются следующие типы источников:

  • "github" — требуется repo в OWNER/REPO формате; необязательно ref и path
  • "git"— требуется; необязательно url``ref иpath
  • "url" — требуется url; необязательный headers объект
  • "npm" — требуется package
  • "file" — требуется path
  • "directory" — требуется path
  • "hostPattern" — требуется hostPattern (регулярное сопоставление узлов Marketplace)
  • "pathPattern" — требуется pathPattern (regex matching marketplace paths)

Этот ключ переопределяется для корпоративных команд. Оставьте полный список разрешений на overridable уровне предприятия:

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

Используйте обычный массив в файле команды предприятия, чтобы заменить список разрешений по умолчанию. Опущение ключа сохраняет корпоративное значение по умолчанию. Явный пустой массив, []означает полную блокировку, а не неуправляемую политику.

модель

Задает предпочитаемую модель в качестве значения по умолчанию для новых бесед. Это позволяет выбрать модель по умолчанию, которая лучше всего подходит для рабочих процессов предприятия. Пользователи по-прежнему могут выбирать другую модель на основе беседы.

  • Установите model для "fusion" использования Copilot Fusion в качестве значения по умолчанию, поэтому новые сеансы выбирают модель или шаблон выполнения автоматически, если пользователь не указывает другую модель на основе беседы. См . раздел AUTOTITLE.
  • Установите model для "auto" использования auto model selection в качестве значения по умолчанию, поэтому новые сеансы автоматически выбирают модель, если пользователь не указывает другую модель на основе беседы. См . раздел AUTOTITLE.
  • Задайте model для определенной модели и версии, чтобы эта модель была по умолчанию для новых бесед, например "kimi-k3".

Этот ключ переопределяется сопоставлением команд предприятия. В вашем случае managed-settings.jsonиспользуйте { "overridable": "auto" } синтаксис для специализации конфигурации ключа для корпоративной команды. Затем можно задать "model": "unmanaged" в файле параметров корпоративной команды, предоставляя специализацию, которая имеет приоритет managed-settings.json для членов этой корпоративной команды.

Примечание.

model первоначально был задокументирован как permissions.model. Клиенты по-прежнему считывают вложенное permissions.model значение, если ключ верхнего уровня отсутствует, но в новых конфигурациях следует использовать ключ верхнего уровня model``model .

fusionTier

Задает уровень усилий по умолчанию для новых бесед при выборе модели "fusion". Принятые значения, от наиболее строгих до наименее строгих, являются "standard", и "unmanaged"``"high"``"max". Этот параметр не выбирает саму модель.

Для этих параметров требуются следующие версии:

  • Для Copilot CLIэтого требуется версия 1.0.104-3 или более поздняя.
  • В VS Codeнем требуется версия 1.144.0 или более поздняя.
  • В GitHub Copilot appнем требуется 1.1.33-4 или более поздней версии.

Задайте fusionTier для строки, отличной от "unmanaged" блокировки уровня усилий для переопределения пользователей и репозитория. Чтобы предоставить значение по умолчанию, которое корпоративные команды могут переопределить, используйте overridable:

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

Например, можно задать "fusionTier": "high"файл параметров команды. Если команда не задана fusionTier, применяется корпоративная по умолчанию.

AutoTier

Задает уровень маршрутизации по умолчанию для новых бесед при выборе модели "auto". Принятые значения, от наиболее строгих до наименее строгих, являются "efficiency", и "unmanaged"``"balance"``"intelligence". Этот параметр не выбирает саму модель.

Для Copilot CLIэтого параметра требуется версия 1.0.87-0 или более поздняя. Для VS Codeэтого требуется версия 1.140.0 или более поздняя.

Задайте autoTier для строки, отличной от "unmanaged" блокировки уровня для переопределения пользователей и репозитория. Чтобы предоставить значение по умолчанию, которое корпоративные команды могут переопределить, используйте overridable:

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

Например, можно задать "autoTier": "intelligence"файл параметров группы предприятия. Если команда предприятия не задана autoTier, применяется корпоративная по умолчанию.

forceRemoteSettingsRefresh

Требуется новое скачивание параметров, управляемых сервером при запуске Copilot CLI, VS Codeи GitHub Copilot app. Установите для forceRemoteSettingsRefresh``true включения этого требования.

В Copilot CLI и в GitHub Copilot appэтом случае происходит пропуск обычного одночасового кэша и предотвращение возврата к более старой кэшированной политике, если загрузка завершается ошибкой. Неудачное обновление оставляет политику не подтвержденной, поэтому затронутые операции ограничены. В VS Codeэтом Copilot случае функции блокируются до тех пор, пока не будет выполнено требуемое обновление. Поэтому пользователям требуется сетевое подключение при запуске клиента.

Для применения требования к первому запуску устройства доставляйте его с помощью параметров, управляемых MDM или файлов. Управляемое сервером значение может требовать обновления при последующих запусках после того, как клиент получил его. Вспомогательные сценарии политики не могут задать этот ключ.

Например managed-settings.json, "forceRemoteSettingsRefresh": trueиспользуйте логическое значение JSON. При настройке Copilot CLI с помощью Windows реестра или управляемых параметров macOS сохраните это значение в виде строки, true содержащей или false. Не используйте DWORD или собственный логический код.

permissions

запретить, запросить, разрешить

В VS Codeэтих подробных правилах разрешений применяются к Copilot сеансам, использующим узел агента. Параметр permissions.disableBypassPermissionsMode имеет более VS Code широкую поддержку и не ограничивается узлом агента.

permissions.askКлючи permissions.denyи permissions.allow ключи используют запрет > запрашивать > разрешить приоритет. Если источник, управляемый сервером, управляемый сервером или файлом, определяет любое правило разрешений или если любой применимый источник объявляет allow список, то по умолчанию несоответветная поддерживаемая операция требует утверждения. В противном случае он следует обычному потоку разрешений.

  • denyблокирует определенные операции независимо от того, совпадают ли они с или allow правиломask. Правило запрета, заданное любым источником управляемых параметров, блокирует операцию для всех пользователей независимо от правил в других источниках.
  • ask требует нового однократного утверждения, прежде чем определенная операция может продолжиться, даже если операция в противном случае будет разрешена. Управляемое ask правило не может быть удовлетворено режимом обхода (также называемым режимом allow-all или YOLO), параметром автоматического утверждения, перехватчиком или другим ярлыком утверждения или предоставлением, сохраненным от предыдущего утверждения. Эта же операция снова запрашивается при следующем запросе.
  • allow позволяет выполнять определенную операцию без запроса. Эффективный список разрешений — это пересечение всех источников, объявляющих один, а не объединение. Источник, который не объявляет список, не устанавливает allow ограничений на этот ключ.

Правила используют следующие селекторы:

SelectorСовпадения
Shell(...)Команды оболочки. Используйте <command> * (например, git push *) для сопоставления префикса команды; в противном случае правило соответствует точному тексту.
Bash(...) — это псевдоним совместимости для Shell(...).
PowerShell(...) использует то же семейство селекторов с сопоставлением нечувствительной команды регистра.
Read(...)Пути чтения и просмотра файлов. Поддерживает шаблоны глобов и эти корни: // для корневого каталога файловой системы, для корневого каталога рабочей области, /``~/ для домашнего каталога и ./ текущего рабочего каталога.
Edit(...)Пути записи и редактирования файлов совпадают с способом Read(...).
Write(...) является псевдонимом для Edit(...).
Domain(...)Источники сети. По умолчанию в протоколе HTTPS используется голый узел, и сопоставление узлов не учитывает регистр. Используется *. для включения поддоменов. Например, соответствует как example.com, *.example.com так и его поддоменам.

Каждый подраздел переопределяется для корпоративных команд. Задайте для корпоративного значения { "overridable": <VALUE> }значение, заменив <VALUE> массив правил. Затем используйте обычный синтаксис для определения правил замены в файле каждой команды предприятия.

disableBypassPermissionsMode

Используйте это, чтобы запретить пользователям включать режим обхода. Режим обхода позволяет агенту запускать команды, получать доступ к файлам и получать URL без запроса одобрения.

Установите этот ключ, чтобы "disable" отключить режим обхода.

Этот параметр не предотвращает assisted permissions. Операции и запросы только для чтения, разрешенные применимыми правилами разрешений, по-прежнему могут продолжаться без запроса. Управляемые deny и ask правила продолжают применяться. Дополнительные сведения см. в assisted permissionsразделе Разрешение выполнения безопасных команд без утверждения вручную.

Если задано значение disableBypassPermissionsMode``"disable", пользователи не могут включить режим обхода:

  • Во Copilot CLIвсех параметрах командной строки для разрешения всех разрешений (--yoloи --allow-allотдельных --allow-all-tools``--allow-all-pathsпараметров) --allow-all-urls не действует при запуске и не может предоставляться повышенные разрешения. Команда /permissions allow-all косой черты и ее псевдонимы /allow-all , а /yoloтакже блокируются. Этот параметр не блокирует или /allow-all autoне блокирует/permissions assisted. Параметр permissions.disableAssistedPermissionsMode определяет, могут ли пользователи включить assisted permissions.
  • В VS Codeэтом случае глобальный параметр автоматического утверждения (chat.tools.global.autoApprove) отключен и не может быть включен повторно.
  • GitHub Copilot appВ сеансах не удается утвердить все****разрешения средства, даже если пользователь выбирает его в качестве значения по умолчанию всеансах > параметров.

Для этого ключа наиболее строгое значение для всех уровней политики выигрывает. Набор "disable" любого слоя вступает в силу и не может быть расслаблен. Уровень нижнего центра или переопределение для каждой команды не может вернуть этот ключ обратно в неуправляемый режим после отключения режима обхода.

Примечание.

Если disableBypassPermissionsMode задано значение, Copilot CLI которое не распознает, интерфейс командной строки регистрирует проблему и применяется "disable" в качестве неработоемого по умолчанию.

disableAssistedPermissionsMode

Установите для permissions.disableAssistedPermissionsMode``true предотвращения включения assisted permissionsпользователей. Этот параметр не отключает режим обхода.

Режим defaultMode

"manual"Установите значение permissions.defaultMode , "assisted"или "allow-all" выберите режим разрешений по умолчанию для новых сеансов. Если выбранный режим недоступен или заблокирован политикой, сеанс начинается с утверждения вручную.

Этот параметр выбирает значение по умолчанию, а не заблокированный режим. Явный допустимый выбор сеанса имеет приоритет над управляемым по умолчанию. Возобновленные сеансы сохраняют сохраненный режим в соответствии с текущими ограничениями политики.

В Copilot CLIэтом управляемом по умолчанию имеет приоритет над параметром пользователя defaultPermissionMode .

Данные телеметрии

Настраивает экспорт OpenTelemetry, маршрутизацию Copilot данных об использовании в сборщик по вашему усмотрению.

См. таблицу поддерживаемых ключей для поддержки клиентов.

При установке telemetry свойства Copilot данные телеметрии отправляются в указанную конечную точку. Поддерживаются следующие вложенные свойства:

  • enabled: установлено, чтобы true включить экспорт телеметрии или false отключить его.
  • endpoint: URL-адрес сборщика OTLP (например, https://otel-collector.example.com).
  • protocol: транспортный протокол для экспорта телеметрии. Допустимые значения: "http/json" и "http/protobuf".
  • capture: объект с независимыми, точными элементами управления для удостоверений и конфиденциального содержимого. По умолчанию каждое дочернее свойство по умолчанию false. Дополнительные сведения см. в разделе "Управление записью".
  • captureContent: устаревшая сокращенная версия, которая включает или отключает классы , toolOutput``responses``toolArgumentsи policyDetail захватывает promptsклассы вместе. Это не влияет identity. Явно настроенное capture дочернее свойство имеет приоритет над этим классом captureContent .
  • lockCaptureContent: установите для true предотвращения включения устаревшего класса содержимого, если этот класс не настроен явным образом или captureContent в управляемом telemetry объекте. Это свойство не управляет удостоверением.
  • serviceName: метка для имени службы телеметрии (например, "copilot").
  • resourceAttributes: объект атрибутов ресурсов OpenTelemetry для подключения ко всем экспортируемым данным телеметрии (например, {"deployment.environment": "production"}).
  • headers: объект литеральных заголовков HTTP для включения в каждый запрос телеметрии (например, Authorization заголовок для сборщика). Необходимо настроить endpoint в одном объекте telemetry . Значения заголовков не включаются в журналы или выходные данные состояния. Используйте ПРОТОКОЛ HTTPS, если заголовки содержат учетные данные, так как HTTP отправляет значения в виде открытого текста.
  • headersProvider: объект, выполняющий команду для предоставления свежих заголовков OTLP или false отключения динамических заголовков. Управляемый вспомогательный элемент переопределяет вспомогательный пользователь, а управляемый статический headers приоритет имеет приоритет над выходными данными вспомогательного пользователя. Это свойство применяется к Copilot CLI. Сведения о полях и поведении см. в разделе Справочник команды GitHub Copilot CLI.

Управляемые telemetry значения имеют приоритет над локальными параметрами, конфигурацией пакета SDK и переменными среды. Если определяется telemetryнесколько управляемых источников, источник с наивысшим приоритетом предоставляет полный управляемый telemetry объект. Объекты из управляемых источников с более низким приоритетом не объединяются в него.

Элементы управления записью

Используйте capture.identity , когда необходимо атрибутировать действие агента, не собирая запросы, ответы или содержимое средства. Используйте другие классы отслеживания для сбора только дополнительного содержимого, необходимого для аудита или исследования.

Встроенные элементы управления захвата поддерживаются в Copilot CLI, GitHub Copilot appа также VS Code сеансах с помощью узла агента. VS CodeИспользование локального агента поддерживает capture.identity и устаревший captureContent параметр, но не применяется promptsнезависимо , , responsesили toolOutput``toolArguments``policyDetail.

КлючЗахваченные данные
identityИмя учетной записиuser.name, прошедшей проверку подлинностиCopilot, учетная запись локальной операционной системы как process.user.nameи имя локального компьютера в качествеhost.name. Имя учетной GitHub записи в настоящее время является именем входа. Этот параметр не влияет на псевдонимный enduser.pseudo.id атрибут.
promptsПользователь, система и разработчик запрашивают текст и связанные с ними входные данные модели, включая поддерживаемые вложения, сводки сжатия, содержимое навыка и контекст рабочей области.
responsesТекст ответа помощника и поддерживаемые материалы о причинах из агента верхнего уровня и подагентов.
toolArgumentsНеобработанные аргументы, команды, запрещенные ресурсы, имена процессов, описания инструментов и схемы, а также необработанные идентификаторы для серверов MCP, подключаемых модулей, перехватчиков, серверов и инструментов.
toolOutputСведения об ошибке результатов и результата средства из инструментов, перехватчиков, серверов MCP и вложенных объектов.
policyDetailНеобвязанные сведения о политике, такие как массивы пути к файловой системе необработанной песочницы. Ограниченное состояние политики, счетчики, результаты и классификации остаются доступными при наличии этого параметра false.

Например, следующие атрибуты конфигурации трассировки для пользователя и компьютера без записи запросов, ответов, содержимого инструмента или необработанных сведений о политике:

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

Предупреждение

Записанное содержимое может включать исходный код, содержимое файла, запросы, команды, результаты инструментов, идентификаторы MCP и пути к рабочим областям, профилям пользователей или файлам, которые могут содержать секреты. Включите только классы записи, необходимые для вашего варианта использования, и отправьте данные в утвержденный сборщик.

remoteControl

Ограничивает Copilot возможность удаленного управления сеансами, размещенными на устройстве. Это не влияет на способность пользователя удаленно управлять сеансами, размещенными на других устройствах.

  • mode: установите для "disabled" предотвращения удаленного управления сеансами на устройстве, чтобы разрешить только удаленный контроль от клиента, "requireSSO" авторизованного единым входом для организаций, перечисленных в githubDotComOrganizations, или "enabled" разрешить его неограниченным.
  • githubDotComOrganizations: массив имен входа организации. Обязательный, если mode имеет значение "requireSSO".

allowedMcpServers

Определяет список разрешений серверов MCP, разрешенных для запуска. Если задано, разрешены только серверы, соответствующие хотя бы одной записи. Любой сервер, не соответствующий, заблокирован.

Опустите этот ключ полностью, чтобы разрешить все серверы, при условии любых записей в deniedMcpServers. Задайте для него пустой массив, чтобы заблокировать все серверы, кроме встроенных серверов по умолчанию.

При определении allowedMcpServersнескольких источников параметров эффективный список разрешений является пересечением всех источников. Сервер должен быть разрешен каждым источником для запуска.

Каждая запись должна содержать ровно одно свойство сопоставления.

PropertyПоведение сопоставленияПрименимые серверы
serverNameТочно соответствует метки сервера, назначаемой пользователем. Подстановочные знаки не поддерживаются. Записи списка разрешений чувствительны к регистру и ограничиваются буквами, цифрами и символами, /``.а также -именами _реестра, такими как microsoft/playwright-mcp приняты. Так как пользователи выбирают имена серверов, используйте serverUrl или serverCommand когда необходимо применить удостоверение сервера.Любой сервер. Серверы в памяти могут использовать serverNameтолько .
serverUrlСоответствует URL-адресу удаленного сервера. Поддерживает * подстановочные знаки для поддоменов или префиксов пути, напримерhttps://mcp.example.com/*``https://*.internal.example.com/*.Удаленные серверы, подключающиеся через события HTTP или отправленные сервером (SSE). Это свойство не применяется к локальным серверам, даже если у них есть URL-адрес.
serverCommandСоответствует точной команде и каждому аргументу локального сервера, например ["npx", "-y", "my-mcp-server"]. Подстановочные знаки и расширение командной строки не поддерживаются.Локальные серверы, использующие стандартные входные и выходные данные (stdio). Это свойство не применяется к удаленным серверам, даже если у них есть команда.

Этот ключ переопределяется для корпоративных команд. Обтекайте объекты overridable сопоставления на уровне предприятия, а затем используйте обычный синтаксис для определения списков разрешений и списков запретов в файле каждой корпоративной команды.

Канонизация URL-адреса

Перед сравнением шаблона с URL-адресом serverUrl сервера клиент нормализует оба значения:

  • Преобразует схему и узел в нижний регистр.
  • Преобразует имена узлов Юникода в Punycode в интернационализованные или юникоды.
  • Удаляет порт :80 по умолчанию для HTTP или :443 HTTPS.
  • Декодирует октеты узла, закодированные в процентах. Например, %65vil преобразуется в evil.
  • Удаляет фрагменты URL-адресов и конечные точки из DNS-имен.
  • Запрещает подстановочные знаки в компоненте центра сопоставлять границу / в путь.

deniedMcpServers

Определяет серверы MCP, которые безусловно заблокированы. Сервер, соответствующий любой записи, блокируется, даже если он также соответствует записи allowedMcpServers. Правила запрета всегда имеют приоритет над правилами разрешения.

Copilot Сторонние серверы, такие как встроенный GitHub сервер MCP, освобождаются от правил запрета и не могут быть заблокированы.

При определении deniedMcpServersнескольких источников параметров эффективный список запретов является объединением всех источников. Сервер, заблокированный любым источником, блокируется для всех.

Каждая запись использует одинаковые serverName``serverUrlсвойства или serverCommand свойства, описанные в allowedMcpServersразделе .

sandbox

Применяет минимальные ограничения локальной песочницы для Copilot CLIсеансов Copilot узла агента и VS CodeGitHub Copilot app. Параметры управляемой песочницы накладывают ограничения, а не значения по умолчанию:

  • Для параметров принудительного true включения управляемое значение применяет этот параметр. false или упущение оставляет конфигурацию пользователя без изменений.
  • Для параметров возможностей управляемое значение false запрещает возможность. true или упущение оставляет конфигурацию пользователя без изменений.
  • Управляемые списки путей только для чтения и записи ограничивают настраиваемые пользователем гранты, а управляемые запрещенные пути добавляются в настроенные пользователем отказы.

В VS Code версии 1.138.0 и более поздних версий эти параметры применяются к Copilot сеансам, использующим встроенную песочницу узла агента. Эта поддержка не распространяется на каждый тип сеанса чата или терминала в VS Code. В VS Code версии 1.140.0 и более поздних версий, чтобы sandbox.enabled``true запретить пользователям отключать песочницу с помощью переключателя песочницы сеанса. Если политика разрешает обход, пользователи по-прежнему могут отключить его для текущего сеанса при реагировании на запрос разрешения на обход песочницы. Это не изменяет политику организации.

Для сеансов во Copilot appвстроенной среде выполнения анализирует, объединяет и применяет полный управляемый sandbox объект, включая свойства, недоступные в параметрах репозитория приложения. Приложение отображает параметры репозитория пользователя, а не полную эффективную управляемую политику и не отображает управляемые блокировки для каждого параметра.

Поддерживаются следующие вложенные свойства:

  • enabled: true требует песочницы по умолчанию. Пользователи не могут отключить его с помощью конфигурации или параметра CLI --no-sandbox . В параметре GitHub Copilot appрепозитория и /sandbox off команде не удается переопределить его. Если эффективная политика разрешает обход, пользователь по-прежнему может отключить песочницу для остальной части текущего сеанса из активного запроса на обход разрешений песочницы. В Copilot CLIэтом случае они также могут использовать /sandbox disable для этого отказа только для сеанса. Ни в чем не изменяет сохраненную политику.
  • failIfUnavailable: trueв сочетании с enabled: trueним делает управляемой песочнице обязательной. Если Copilot не удается проверить, скомпилировать или применить политику песочницы с доступной серверной частью песочницы, она блокирует выполнение модели и средства, а не позволяет командам завершать ошибку или выполнять отмену сортировки. Это свойство не включает песочницу самостоятельно.
  • allowBypass: false запрещает выполнение отдельных команд за пределами песочницы и запрещает пользователям отключать песочницу для остальной части текущего сеанса из активной строки разрешений на обход песочницы. Кроме Copilot CLIтого, он запрещает пользователям отключить песочницу./sandbox disable
  • addCurrentWorkingDirectory: false запрещает среде выполнения автоматически добавлять текущий рабочий каталог в пути чтения и записи песочницы.
  • sandboxMcpServers: true требует, чтобы локальные серверы MCP запускались в сеансе для запуска в песочнице. Удаленные серверы MCP не выполняются в локальной песочнице.
  • sandboxLspServers: true требует, чтобы серверы языка запускались в сеансе для запуска в песочнице.
  • auth.git: false предотвращает внедрение маркера для операций HTTPS с проверкой GitHub подлинности Git в песочнице.
  • auth.gh: false предотвращает внедрение маркера GitHubGitHub CLI среды выполнения в песочницу.
  • allowDevToolAccess: false запрещает автоматический доступ к конфигурации средств разработки, кэшам, реестрам и цепочкам инструментов. Эти расположения могут содержать учетные данные реестра пакетов или маркеры. Отключение доступа может привести к восстановлению пакетов, операциям реестра с проверкой подлинности или сборкам, которые используют общие кэши, чтобы завершиться ошибкой, если не предоставить явным образом необходимые пути.
  • learningMode: определяет, разрешены ли изолированные команды в поддерживаемых Windows узлах записывают заблокированный доступ или запись. См. раздел sandbox.learningMode.
  • userPolicy: объект, который настраивает ограничения файловой системы, сети и macOS. Поддерживаемые свойства описаны в следующих разделах.

При неподдерживаемом узле ИНТЕРФЕЙСА командной строки управление enabled: true сервером может быть отклонено, если failIfUnavailable: true не требуется также принудительное применение. Собственные параметры MDM, управляемые на основе файлов и вспомогательные параметры политики по-прежнему применяются enabled: true, поэтому изолированные команды не выполняются без песочницы. enabled failIfUnavailable При необходимости интерфейс командной строки блокирует модель и выполнение инструментов, если не удается установить принудительное применение. Устраните сообщаемую проблему узла или политики, а затем запустите новый сеанс.

Для переопределения группы предприятия, управляемой сервером, заключите весь объект песочницы в overridable:

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

Оболочка должна быть единственным свойством непосредственно внутри sandbox. Отдельные вложенные свойства, например sandbox.enabled, не могут использовать собственные overridable оболочки. Обычный объект песочницы корпоративного файла заменяет весь завернутый по умолчанию, поэтому включите все ограничения, которые должны остаться. Опущение sandbox сохраняет корпоративное значение по умолчанию.

sandbox.learningMode

Управляет записью доступа для изолированных команд на Windows. Этот параметр не действует, если песочница отключена или узел Windows не поддерживает запись доступа.

  • "deny" (по умолчанию): применяет ограничения файловой системы и процессов и записи заблокированного доступа.
  • "allow": записывает и разрешает доступ к файловой системе и процессу, которые в противном случае будут заблокированы. Ограничения сети остаются на месте. Этот режим не обеспечивает обычную файловую систему и защиту процессов.

Это "allow" значение принимается только с помощью собственного Windows управления устройствами, например Intune или реестра Windows. Он игнорируется в managed-settings.json. Значение "deny" из любого управляемого источника имеет приоритет.

sandbox.userPolicy.filesystem

Настраивает доступ к файловой системе для изолированных процессов. Пути должны быть абсолютными. Списки управляемых грантов сопоставляются с пользовательскими списками по точной строке пути, а не по родительскому или дочернему пути.

  • readwritePaths: массив путей, которые изолированные процессы могут читать и записывать. Путь, настроенный пользователем, остается доступным, только если его точную строку также отображается в каждом управляемом источнике, указывающем это свойство. Пустой управляемый массив удаляет все пользовательские путь чтения и записи, но не удаляет доступ, собранный отдельно, например временные каталоги или текущий рабочий каталог.
  • readonlyPaths: массив путей, которые изолированные процессы могут читать, но не записывать. Путь, настроенный пользователем, остается доступным, только если его точную строку также отображается в каждом управляемом источнике, указывающем это свойство. Пустой управляемый массив удаляет все настраиваемые пользователем путь только для чтения, но не удаляет доступ, собранный отдельно.
  • deniedPaths: массив путей, к которым изолированные процессы не могут получить доступ. Управляемое значение добавляется, а не заменяет путь пользователя.

sandbox.userPolicy.network

Настраивает сетевой доступ для изолированных процессов.

  • allowOutbound: false блокирует исходящий сетевой доступ.
  • allowLocalNetwork: false ограничивает доступ к локальной сети. Его влияние на изолированные команды отличаются операционной системой. Windows правила прокси-сервера и узла требуют доступа к локальной сети, поэтому политика, которая объединяет их с false запретом запуска этих команд.
  • allowedHosts: массив имен узлов или IP-адресов, к которым разрешены изолированные процессы. Непустый список блокирует узлы, которые не соответствуют. Записи могут быть точными именами узлов, точными IP-адресами, поддоменами, *.example.com но не корневым доменом или * для каждого узла. Не включать URL-адреса или порты. Пользовательские и управляемые списки разрешений объединяются строго. Если у них нет перекрывающихся узлов, все узлы отклоняются.
  • blockedHosts: массив имен узлов или IP-адресов, которые изолированные процессы не могут достичь. Заблокированные узлы имеют приоритет над разрешенными узлами, и блокировка домена также блокирует его поддомены.
  • proxy: объект, который направляет изолированный сетевой трафик через вышестоящий HTTP-прокси. Задайте proxy.url URL-адрес прокси-сервера. Поддержка платформы и принудительное применение различаются.

В Copilot CLIправилах узла и вышестоящих прокси-серверах используется встроенный локальный прокси-сервер. В macOS и Linux песочница предотвращает обход программ с прямыми подключениями. В Windows песочница зависит от программ с учетом параметров прокси-сервера. В результате Windows эти элементы управления не обеспечивают одинаковую защиту от прямых подключений. Сведения о требованиях и ограничениях платформы см. в разделе "Настройка параметров сети".

sandbox.userPolicy.seatbelt

Настраивает параметры для macOS для параметров Сидбелья.

  • keychainAccess: false запрещает изолированным процессам доступ к цепочке ключей macOS.

Минимальное применение версий клиента для sandbox

При добавлении sandbox ключа в управляемые Copilot параметры применяется локальная песочница для всех пользователей в области. Эти пользователи должны использовать клиентную версию, которая поддерживает локальную Copilot песочницу. Пока пользователь не обновляет клиент по крайней мере минимальную поддерживаемую версию, их подключения Copilot блокируются.

Поддерживаемый клиентМинимальная версия
VS Code
1.141.0
интерфейс командной строки Copilot
1.0.93
Приложение GitHub Copilot
1.1.26