Используйте эту ссылку для понимания поддерживаемых в настоящее время ключей managed-settings.json.
Сведения о методах развертывания и поддерживаемых клиентах см. в разделе Настройка параметров, управляемых предприятием.
Правила приоритета
При наличии нескольких источников параметров параметры, приведенные выше в этом списке, имеют приоритет над параметрами далее в списке:
- Параметры, управляемые MDM
- Параметры, управляемые сервером
- Параметры на основе файлов
- Параметры уровня пользователя
В качестве исключения следующие ключи состоят в наиболее строгом направлении в различных методах доставки:
sandboxpermissions.deny,permissions.askиpermissions.allow
Поддерживаемые ключи
| Ключ | Purpose | Copilot CLI | VS Code | GitHub Copilot app | Copilot cloud agent | JetBrains IDEs |
|---|---|---|---|---|---|---|
permissions.disable | Отключает обход или поведение YOLO-style allow-all | |||||
permissions.deny | Блоки конкретных операций | |||||
permissions.ask | Требуется новое утверждение человека, прежде чем конкретные операции могут продолжиться | |||||
permissions.allow | Разрешает выполнение определенных операций без запроса | |||||
model | Задает автоматический выбор модели в качестве значения по умолчанию для новых бесед | |||||
enabledPlugins | Включает или отключает определенные подключаемые модули по ключу | |||||
extra | Добавляет подключаемые платформы, к которым пользователи могут получить доступ | |||||
strict | Ограничивает установку подключаемого модуля явным образом перечисленными marketplace | |||||
telemetry | Настраивает экспорт OpenTelemetry, маршрутизацию Copilot данных об использовании в сборщик по вашему усмотрению | |||||
remoteControl | Ограничивает возможность удаленного управления сеансами, размещенными на этом устройстве, на основе состояния авторизации единого входа клиента для перечисленных организаций. Не влияет на возможность удаленного управления сеансами, размещенными на других устройствах | |||||
allowedMcpServers | Определяет список разрешений серверов MCP, разрешенных для запуска. Любой сервер, не соответствующий, заблокирован. Опущено разрешить все серверы, при условии каких-либо правил запрета | |||||
deniedMcpServers | Определяет серверы MCP, которые безусловно заблокированы, даже если они также соответствуют записи в allowedMcpServers | |||||
sandbox | Применяет минимальные ограничения локальной песочницы для выполнения команд, файловой системы и сетевого доступа, учетных данных и локальных серверов MCP и LSP |
Применение различных параметров к корпоративным командам
Для развертываний, управляемых сервером, предприятие может применять различные системы управления к группам пользователей на основе членства в команде предприятия. Предприятие определяет все параметры— членство в команде определяет только, какие пользователи получают заданный набор значений.
Чтобы сделать ключ подходящим для определенных команд значений, пометьте его как переопределимый в managed-settings.json синтаксисе { "overridable": <VALUE> } . Переопределенный ключ использует значение команды при установке или возвращается к корпоративному умолчанию, когда команда оставляет ее неустановленной. Синтаксис { "overridable": <VALUE> } применяется к ключам model, permissions.deny``deniedMcpServers``permissions.disableBypassPermissionsMode``permissions.ask``permissions.allow``allowedMcpServersа также к ключам. Ключи, не помеченные переопределением, остаются решением корпоративного уровня, которое команды не могут изменить.
enabledPlugins и extraKnownMarketplaces работать аддитивно. Предприятие managed-settings.json задает базовый план, а корпоративный файл команды может добавлять дополнительные подключаемые модули и marketplace на его основе. Полные действия по настройке см. в разделе Настройка параметров, управляемых предприятием.
Пример конфигурации
В следующем примере показаны эти ключи в одном управляемом файле параметров.
{
"model": "auto",
"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",
"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,
"allowBypass": false,
"sandboxMcpServers": true,
"sandboxLspServers": true
}
}
enabledPlugins
Определяет подключаемые модули, которые автоматически устанавливаются или блокируются для всех корпоративных пользователей. Каждая запись использует формат PLUGIN-NAME@MARKETPLACE-NAME в качестве ключа с логическим значением: true для включения подключаемого модуля или false его отключения. См . раздел AUTOTITLE.
extraKnownMarketplaces
Определяет дополнительные подключаемые платформы подключаемых модулей, доступные пользователям. Каждая запись — это именованный объект Marketplace, source содержащий свойство и необязательное autoUpdate логическое значение.
true Установите для autoUpdate того, чтобы клиенты периодически обновляли этот marketplace и обновляли установленные подключаемые модули, полученные из него. Установите для него false значение, чтобы автоматические обновления оставались отключенными для этой платформы. Если не указано autoUpdate, клиенты используют существующее поведение по умолчанию или настроенное пользователем поведение.
Так как управляемые параметры имеют приоритет, пользователи не могут переопределить определенное autoUpdate значение. Этот параметр применяется только к этой платформе, и все ограничения, которые strictKnownMarketplaces по-прежнему применяются перед операциями обновления и обновления.
Поддерживаются следующие типы источников:
"github"— требуетсяrepoформатOWNER/REPO; необязательныйref(ветвь, тег или SHA) иpath(подкаталог)"git"— требуется; необязательноurl``refиpath"directory"— требуетсяpath
strictKnownMarketplaces
Ограничивает установку подключаемого модуля только в 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)
модель
Задает автоматический выбор модели в качестве значения по умолчанию для новых бесед. См . раздел AUTOTITLE.
- При установке
model``"auto"новых сеансов используется автоматическая модель, если пользователь не задает другую модель на основе беседы. - Этот ключ переопределяется сопоставлением команд предприятия. В вашем
managed-settings.jsonслучае используйте{ "overridable": "auto" }синтаксис для специализации конфигурации ключа на основе команды. Затем можно задать"model": "unmanaged"в файле параметров команды, предоставляя специализацию, которая имеет приоритетmanaged-settings.jsonдля членов группы субъектов.
Примечание.
model первоначально был задокументирован как permissions.model. Клиенты по-прежнему считывают вложенное permissions.model значение, если ключ верхнего уровня отсутствует, но в новых конфигурациях следует использовать ключ верхнего уровня model``model .
permissions
запретить, запросить, разрешить
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
Запрещает пользователям включать режим обхода (также называемый режимом YOLO). Режим обхода позволяет агенту запускать команды, получать доступ к файлам и получать URL без запроса одобрения.
Если задано значение disableBypassPermissionsMode``"disable", пользователи не могут включить режим обхода:
- Во Copilot CLIвсех параметрах командной строки для разрешения всех разрешений (
--yoloи--allow-allотдельных--allow-all-tools,--allow-all-pathsи--allow-all-urlsпараметров) подавляются при запуске и не могут предоставляться повышенные разрешения./yoloКоманды/allow-allкосой черты также блокируются. - В VS Codeэтом случае глобальный параметр автоматического утверждения (
chat.tools.global.autoApprove) отключен и не может быть включен повторно. - В параметре GitHub Copilot app"Разрешить все" для параметра "Разрешения инструментов" заблокированы в параметрах сеансов.
- Этот ключ переопределяется сопоставлением команд предприятия. В вашем
managed-settings.jsonслучае используйте{ "overridable": "disable" }синтаксис для специализации конфигурации ключа на основе команды. Затем можно задать"disableBypassPermissionsMode": "unmanaged"в файле параметров команды, предоставляя специализацию, которая имеет приоритетmanaged-settings.jsonдля членов группы субъектов.
Данные телеметрии
Настраивает экспорт OpenTelemetry, маршрутизацию Copilot данных об использовании в сборщик по вашему усмотрению.
Это свойство поддерживается для Copilot CLI и VS Code.
При установке telemetry свойства Copilot данные телеметрии отправляются в указанную конечную точку. Поддерживаются следующие вложенные свойства:
enabled: установлено, чтобыtrueвключить экспорт телеметрии илиfalseотключить его.endpoint: URL-адрес сборщика OTLP (например,https://otel-collector.example.com).protocol: транспортный протокол для экспорта телеметрии. Допустимые значения:"http/json"и"http/protobuf".captureContent: установлено, чтобыtrueвключить содержимое запроса и ответа в полезные данные телеметрии илиfalseисключить его.lockCaptureContent: задано, чтобыtrueзапретить пользователям изменятьcaptureContentпараметр.serviceName: метка для имени службы телеметрии (например,"copilot").resourceAttributes: объект атрибутов ресурсов OpenTelemetry для подключения ко всем экспортируемым данным телеметрии (например,{"deployment.environment": "production"}).headers: объект заголовков HTTP для включения в каждый запрос телеметрии (например,Authorizationзаголовок для сборщика).
remoteControl
Ограничивает Copilot возможность удаленного управления сеансами, размещенными на устройстве. Это не влияет на способность пользователя удаленно управлять сеансами, размещенными на других устройствах.
mode: установите для"disabled"предотвращения удаленного управления сеансами на устройстве, чтобы разрешить только удаленный контроль от клиента,"requireSSO"авторизованного единым входом для организаций, перечисленных вgithubDotComOrganizations, или"enabled"разрешить его неограниченным.githubDotComOrganizations: массив имен входа организации. Обязательный, еслиmodeимеет значение"requireSSO".
allowedMcpServers
Определяет список разрешений серверов MCP, разрешенных для запуска. Если задано, разрешены только серверы, соответствующие хотя бы одной записи. Любой сервер, не соответствующий, заблокирован.
Опустите этот ключ полностью, чтобы разрешить все серверы, при условии любых записей в deniedMcpServers. Задайте для него пустой массив, чтобы заблокировать все серверы, кроме встроенных серверов по умолчанию.
При определении allowedMcpServersнескольких источников параметров эффективный список разрешений является пересечением всех источников. Сервер должен быть разрешен каждым источником для запуска.
Каждая запись должна содержать ровно одно свойство сопоставления.
| Property | Поведение сопоставления | Применимые серверы |
|---|---|---|
serverName | Точно соответствует метки сервера, назначаемой пользователем. Подстановочные знаки не поддерживаются. Так как пользователи выбирают имена серверов, используйте serverUrl или serverCommand когда необходимо применить удостоверение сервера. | Любой сервер. Серверы в памяти могут использовать serverNameтолько . |
serverUrl | Соответствует URL-адресу удаленного сервера. Поддерживает * подстановочные знаки для поддоменов или префиксов пути, напримерhttps:/. | Удаленные серверы, подключающиеся через события HTTP или отправленные сервером (SSE). Это свойство не применяется к локальным серверам, даже если у них есть URL-адрес. |
serverCommand | Соответствует точной команде и каждому аргументу локального сервера, например ["npx", "-y", "my-mcp-server"]. Подстановочные знаки и расширение командной строки не поддерживаются. | Локальные серверы, использующие стандартные входные и выходные данные (stdio). Это свойство не применяется к удаленным серверам, даже если у них есть команда. |
Этот ключ переопределяется для корпоративных команд. Обтекайте объекты overridable сопоставления на уровне предприятия, а затем используйте обычный синтаксис для определения списков разрешений и списков запретов в файле каждой команды.
Канонизация URL-адреса
Перед сравнением шаблона с URL-адресом serverUrl сервера клиент нормализует оба значения:
- Преобразует схему и узел в нижний регистр.
- Преобразует имена узлов Юникода в Punycode в интернационализованные или юникоды.
- Удаляет порт
:80по умолчанию для HTTP или:443HTTPS. - Декодирует октеты узла, закодированные в процентах. Например,
%65vilпреобразуется вevil. - Удаляет фрагменты URL-адресов и конечные точки из DNS-имен.
- Запрещает подстановочные знаки в компоненте центра сопоставлять границу
/в путь.
deniedMcpServers
Определяет серверы MCP, которые безусловно заблокированы. Сервер, соответствующий любой записи, блокируется, даже если он также соответствует записи allowedMcpServers. Правила запрета всегда имеют приоритет над правилами разрешения.
Copilot Сторонние серверы, такие как встроенный GitHub сервер MCP, освобождаются от правил запрета и не могут быть заблокированы.
При определении deniedMcpServersнескольких источников параметров эффективный список запретов является объединением всех источников. Сервер, заблокированный любым источником, блокируется для всех.
Каждая запись использует одинаковые serverName``serverUrlсвойства или serverCommand свойства, описанные в allowedMcpServersразделе .
sandbox
Применяет минимальные ограничения локальной песочницы для Copilot CLI. Параметры управляемой песочницы накладывают ограничения, а не значения по умолчанию:
- Для параметров принудительного
trueвключения управляемое значение применяет этот параметр.falseили упущение оставляет конфигурацию пользователя без изменений. - Для параметров возможностей управляемое значение
falseзапрещает возможность.trueили упущение оставляет конфигурацию пользователя без изменений. - Управляемые списки путей только для чтения и записи ограничивают настраиваемые пользователем гранты, а управляемые запрещенные пути добавляются в настроенные пользователем отказы.
Поддерживаются следующие вложенные свойства:
enabled:trueтребует песочницы и предотвращает отключение пользователей.allowBypass:falseзапрещает модели запрашивать выполнение отдельной команды за пределами песочницы.addCurrentWorkingDirectory:falseзапрещает Copilot CLI автоматически добавлять текущий рабочий каталог в пути чтения и записи песочницы.sandboxMcpServers:trueтребуется локальные серверы MCP, запущенные в Copilot CLI песочнице. Удаленные серверы MCP не выполняются в локальной песочнице.sandboxLspServers:trueтребует, чтобы серверы языка запускались в Copilot CLI песочнице.gitAuth:falseзапрещает Copilot CLI внедрение маркера для прошедших проверку подлинности операций GitHub HTTPS Git в песочнице.ghAuth:falseзапрещает Copilot CLI внедрение маркера GitHub в GitHub CLI песочницу.allowDevToolAccess:falseзапрещает автоматический доступ к конфигурации средств разработки, кэшам, реестрам и цепочкам инструментов. Эти расположения могут содержать учетные данные реестра пакетов или маркеры. Отключение доступа может привести к восстановлению пакетов, операциям реестра с проверкой подлинности или сборкам, которые используют общие кэши, чтобы завершиться ошибкой, если не предоставить явным образом необходимые пути.userPolicy: объект, который настраивает ограничения файловой системы, сети и macOS. Поддерживаемые свойства описаны в следующих разделах.
sandbox.userPolicy.filesystem
Настраивает доступ к файловой системе для изолированных процессов. Пути должны быть абсолютными. Списки управляемых грантов сопоставляются с пользовательскими списками по точной строке пути, а не по родительскому или дочернему пути.
readwritePaths: массив путей, которые изолированные процессы могут читать и записывать. Путь, настроенный пользователем, остается доступным, только если его точную строку также отображается в каждом управляемом источнике, указывающем это свойство. Пустой управляемый массив удаляет все пользовательские путь чтения и записи, но не удаляет доступ, собранный отдельно, например временные каталоги или текущий рабочий каталог.readonlyPaths: массив путей, которые изолированные процессы могут читать, но не записывать. Путь, настроенный пользователем, остается доступным, только если его точную строку также отображается в каждом управляемом источнике, указывающем это свойство. Пустой управляемый массив удаляет все настраиваемые пользователем путь только для чтения, но не удаляет доступ, собранный отдельно.deniedPaths: массив путей, к которым изолированные процессы не могут получить доступ. Управляемое значение добавляется, а не заменяет путь пользователя.
sandbox.userPolicy.network
Настраивает сетевой доступ для изолированных процессов.
allowOutbound:falseблокирует исходящий сетевой доступ.allowLocalNetwork:falseзапрещает доступ к локальной сети.
Поведение сети зависит от операционной системы. В частности, прокси-сервер не является полной границой управления исходящим трафиком, так как некоторые приложения могут игнорировать параметры прокси-сервера.
sandbox.userPolicy.seatbelt
Настраивает параметры для macOS для параметров Сидбелья.
keychainAccess:falseзапрещает изолированным процессам доступ к цепочке ключей macOS.