このリファレンスを使用して、 Copilotのエンタープライズ管理設定について理解します。 ほとんどの設定はmanaged-settings.jsonで設定できます。 デバイス管理を必要とする設定は、以下に記載されています。
ファイルを作成する手順については、 エンタープライズ管理設定を使い始める を参照してください。
サポートされているキー
| 鍵 | Purpose |
|---|---|
permissions.disable | バイパスまたは YOLO スタイルのすべて許可動作を無効にします |
permissions.deny | 特定の操作をブロックする |
permissions.ask | 特定の操作を続行する前に、新しい人間の承認が必要です |
permissions.allow | プロンプトなしで特定の操作を続行することを許可します |
permissions.disable | ユーザーが有効にできないようにする assisted permissions |
permissions.default | 新しいセッションの既定のアクセス許可モードを制御します |
features.computer | ユーザーがコンピューターの使用を有効にできるかどうかを制御します |
model | 優先モデルを新しい会話の既定値として設定します |
fusionTier | 選択したモデルがfusionの場合に、新しい会話の既定の作業レベルを設定します。 |
autoTier | 新しい会話の既定の自動ルーティング層を設定します |
communication.support.url | 組織のヘルプ ページの http または https の絶対 URL を設定します。 情報のみ。 |
| Copilot CLI は、管理者に連絡するようユーザーに案内する箇所ではどこでも、それにリンクできます | |
enabledPlugins | 特定のプラグインをキーで有効または無効にする |
extra | ユーザーがアクセスできるプラグイン マーケットプレースを追加します |
strict | プラグインのインストールを明示的に一覧表示されたマーケットプレースに制限する |
telemetry | OpenTelemetry エクスポートを設定し、Copilot 使用状況データを任意のコレクターに送信します |
remoteControl | このデバイスでホストされているセッションを、リストされている組織の制御クライアントの SSO 承認状態に基づいてリモートで制御できるかどうかを制限します。 他のデバイスでホストされているセッションをリモートで制御するユーザーの機能には影響しません |
force | クライアントの起動時にサーバーで管理される新しい設定のフェッチが必要です |
allowedMcpServers | 実行が許可されている MCP サーバーの許可リストを定義します。 一致しないサーバーはすべてブロックされます。 拒否規則に従って、すべてのサーバーを許可する場合は省略します |
deniedMcpServers | |
allowedMcpServers 内のエントリにも一致する場合であっても、無条件にブロックされる MCP サーバーを定義します。 | |
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 |
1 |
2 |
3 | | | |
| autoTier |
4 |
5 | | | | |
| communication.support.url | | | | | | |
| enabledPlugins | | | | | | |
| extraKnownMarketplaces | | | | | | |
| strictKnownMarketplaces | | | | | | |
| telemetry | | | | | | |
| remoteControl | | | | | | |
| forceRemoteSettingsRefresh | | | | | | |
| allowedMcpServers | | | | | | |
| deniedMcpServers | | | | | | |
| sandbox |
6 |
7 |
8 | | | |
telemetryのサポートは、サブプロパティとハーネスによって異なります。 詳細なキャプチャをサポートするクライアントについては、キャプチャ コントロールを参照してください。
詳細情報 Copilot in the cloud
クラウド セッションは、サンドボックスまたは GitHub Actions 上で実行できます。 ポリシーとエンタープライズ管理設定の対象範囲は、現在、環境によって異なります。 ユーザーがこれらの環境を選択できる場合、クラウド サンドボックスが既定です。 ただし、現時点では、一部のインターフェイスは GitHub Actions でのみ実行できます (問題を Copilot に割り当てたり、プル要求で @Copilot にメンションしたりするなど)。
**
Copilot in the cloud (サンドボックス)** の表で定義されているキーは、クラウド サンドボックスでのセッションの開始をサポートするすべてのサーフェスからサポートされます。 例外として、 model キーは、 GitHub Web サイト、 Copilot CLI、および VS Codeから開始されたクラウド セッションでのみサポートされます。
allowedMcpServers と deniedMcpServers は、ユーザー設定とリポジトリ設定で定義されている MCP サーバーには適用されますが、リポジトリ カスタム エージェント プロファイルで定義されている MCP サーバーには適用されません。 ただし、カスタム エージェント プロファイルで構成された MCP サーバーの使用を防ぐには、それらを開始するために必要なドメインが組織またはリポジトリ レベルのカスタム ファイアウォールによって許可されないようにします。 「GitHub Copilotのファイアウォールのカスタマイズまたは無効化」を参照してください。
構成例
次の例は、これらのキーを 1 つの管理設定ファイルに示しています。
{
"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 CLI と GitHub Copilot appでコンピューターの使用を有効にできるかどうかを制御します。 ユーザーがコンピューターの使用を有効にできないようにするには、 features.computerUse を false に設定します。 ローカル設定では、この制限をオーバーライドできません。 値を trueに設定するか、キーを省略して、ユーザーがローカル設定を使用してコンピューターの使用を制御できるようにします。
有効化されたプラグイン
すべてのエンタープライズ ユーザーに対して自動的にインストールまたはブロックされるプラグインを定義します。 各エントリは、キーとして PLUGIN-NAME@MARKETPLACE-NAME 形式を使用し、値にはブール値を指定します。true はプラグインを有効にする必要があることを示し、false は無効にする必要があることを示します。 「エンタープライズで管理されるプラグインの標準について」を参照してください。
管理された値は、常にリポジトリの既定値とメンバー設定よりも優先されます。 リポジトリの既定値では、管理ポリシーによってブロックされるプラグインを有効にしたり、ポリシーで許可されていないマーケットプレースを使用したりすることはできません。
extraKnownMarketplaces
ユーザーが使用できる追加のプラグイン マーケットプレースを定義します。 各エントリは、 source プロパティと省略可能な autoUpdate ブール値を含む名前付き Marketplace オブジェクトです。
autoUpdateを true に設定すると、クライアントはそのマーケットプレースを定期的に更新し、そこからソースを取得したインストール済みプラグインを更新する必要があります。 この設定を false に設定すると、そのマーケットプレースで自動更新を無効にしておく必要があります。
autoUpdateを省略した場合、クライアントは既存の既定の動作またはユーザー構成の動作を使用します。
管理設定が優先されるため、ユーザーは定義された autoUpdate 値をオーバーライドできません。 この設定は該当するマーケットプレイスにのみ適用され、更新およびアップデート操作の前にも strictKnownMarketplaces の制限が適用されます。
次のソースの種類がサポートされています。
"github"—repo形式のOWNER/REPOが必要です。省略可能なref(ブランチ、タグ、または SHA) とpath(サブディレクトリ)"git"—urlが必要です。省略可能なrefとpath"directory"—pathが必要
「エンタープライズで管理されるプラグインの標準について」を参照してください。
サーバー管理のエンタープライズ チームのオーバーライドの場合は、 overridableで完全なマーケットプレース マップをラップします。
{
"extraKnownMarketplaces": {
"overridable": {
"enterprise-plugins": {
"source": {
"source": "github",
"repo": "OWNER/REPO"
}
}
}
}
}
その後、エンタープライズ チーム ファイルは、この既定値を置き換える標準のマーケットプレース マップを提供できます。 エンタープライズ チームが保持すべき既定のマーケットプレースを含めます。 エンタープライズ チームがキーを省略した場合、エンタープライズの既定値はそのまま残ります。
strictKnownMarketplaces
プラグインのインストールを、企業によって明示的に定義されたマーケットプレースのみに制限します。 このキーを設定すると、組み込みのマーケットプレースが無効になります。 空の配列は、完全なロックダウンを意味します。 各エントリは、ソースの種類を示す source プロパティを持つ Marketplace オブジェクトです。 次のソースの種類がサポートされています。
"github"—repo形式のOWNER/REPOが必要です。省略可能なrefとpath"git"—urlが必要です。省略可能なrefとpath"url"—urlが必要です。省略可能なheadersオブジェクト"npm"—packageが必要"file"—pathが必要"directory"—pathが必要"hostPattern"—hostPatternが必要です(マーケットプレイス ホストに一致する正規表現)"pathPattern"— Marketplace のパスに一致する正規表現であるpathPatternが必要です
このキーは、エンタープライズ チームでオーバーライドできます。 完全な許可リストをエンタープライズ レベルで overridable でラップします。
{
"strictKnownMarketplaces": {
"overridable": [
{ "source": "github", "repo": "OWNER/REPO" }
]
}
}
エンタープライズ チーム ファイルで通常の配列を使用して、既定の許可リストを置き換えます。 キーを省略すると、エンタープライズの既定値が保持されます。 明示的な空の配列 ( []) は、アンマネージド ポリシーではなく、完全なロックダウンを意味します。
モデル
優先モデルを新しい会話の既定値として設定します。 これにより、企業のワークフローに最適な既定のモデルを選択できます。 ユーザーは、会話ごとに別のモデルを選択できます。
modelを"fusion"に設定してCopilot Fusionを既定として使用するようにします。そのため、新しいセッションでは、ユーザーが会話ごとに別のモデルを指定しない限り、モデルまたは実行パターンが自動的に選択されます。 「GitHub Copilot Fusion の概要」を参照してください。- auto model selectionを既定として使用するように
modelを"auto"に設定します。そのため、新しいセッションでは、ユーザーが会話ごとに別のモデルを指定しない限り、モデルが自動的に選択されます。 「について GitHub Copilotauto model selection」を参照してください。 modelを特定のモデルとバージョンに設定して、そのモデルを新しい会話の既定値にします ("kimi-k3"など)。
このキーは、エンタープライズ チーム マッピングによってオーバーライドできます。
managed-settings.jsonで、{ "overridable": "auto" }構文を使用して、キーの構成をエンタープライズ チーム向けに指定します。 その後、エンタープライズ チーム設定ファイルで "model": "unmanaged" を設定し、そのエンタープライズ チームのメンバーに対して managed-settings.json よりも優先される特別な設定を指定できます。
メモ
model は、当初は permissions.modelとして文書化されていました。 最上位レベルのmodel キーがない場合でも、クライアントは入れ子になったpermissions.model値を読み取りますが、新しい構成では最上位modelキーを使用する必要があります。
fusionTier
選択したモデルが "fusion" である場合に、新しい会話の既定の努力レベルを設定します。 許容される値は、最も制限の厳しいものから最も制限の緩いものまで、"standard"、"high"、"max"、および "unmanaged"です。 この設定では、モデル自体は選択されません。
fusionTierを"unmanaged"以外の文字列に設定して、ユーザーおよびリポジトリのオーバーライドに対して労力レベルをロックします。 エンタープライズ チームがオーバーライドできる既定値を設定するには、overridableを使用します。
{
"model": "fusion",
"fusionTier": { "overridable": "standard" }
}
たとえば、チーム設定ファイルは "fusionTier": "high"設定できます。 チームが fusionTierを設定していない場合は、エンタープライズの既定値が適用されます。
autoTier
選択したモデルが "auto"されたときに、新しい会話の既定のルーティング層を設定します。 許容される値は、最も制限の厳しいものから最も制限の緩いものまで、"efficiency"、"balance"、"intelligence"、および "unmanaged"です。 この設定では、モデル自体は選択されません。
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では、これは通常の 1 時間のキャッシュをスキップし、ダウンロードが失敗した場合に古いキャッシュされたポリシーへのフォールバックを防ぎます。 更新が失敗すると、ポリシーは未確認の状態になるため、影響を受ける操作は制限されます。 VS Codeでは、Copilot機能は、必要な更新が成功するまでブロックされます。 そのため、ユーザーはクライアントを起動するときにネットワーク接続が必要になります。
デバイスの初回起動時から適用する必要がある場合は、それをMDM管理またはファイルベースの設定を通じて配布します。 サーバー管理値は、クライアントが受け取った後、その後の起動時に更新が必要な場合があります。 ポリシー ヘルパー スクリプトでは、このキーを設定できません。
managed-settings.jsonでは、JSON ブール値 (例: "forceRemoteSettingsRefresh": true) を使用します。 Windows レジストリまたは macOS 管理設定を使用してCopilot CLIを構成する場合は、この値をtrueまたはfalseを含む文字列として格納します。 DWORD またはネイティブブール値は使用しないでください。
アクセス許可
拒否、確認、許可
VS Codeでは、これらの詳細なアクセス許可規則は、エージェント ホストを使用するCopilot セッションに適用されます。
permissions.disableBypassPermissionsMode設定には、より広範なVS Codeサポートがあり、エージェント ホストに限定されるわけではありません。
permissions.deny、permissions.ask、および permissions.allow キーには、拒否 > 確認 > 許可 の優先順位が適用されます。 MDM 管理ソース、サーバー管理ソース、またはファイルベースのソースのいずれかで許可ルールが定義されている場合、または該当するソースのいずれかで allow リストが宣言されている場合、一致しないサポート対象の操作は既定で承認が必要になります。 それ以外の場合は、通常のアクセス許可フローに従います。
denyは、askまたはallowルールのいずれにも一致するかどうかに関係なく、特定の操作をブロックします。 管理設定ソースによって設定された拒否ルールは、他のソースのルールに関係なく、すべてのユーザーの操作をブロックします。askでは、通常であれば許可される操作であっても、特定の操作を実行する前に、その都度の承認が必要です。 マネージドaskルールは、バイパス モード (すべて許可モードまたは YOLO モードとも呼ばれます)、自動承認設定、フックまたはその他の承認ショートカット、または以前の承認から保持された許可では満たされません。 同じ操作は、次回要求されると再度プロンプトを表示します。allowでは、特定の操作をプロンプトなしで続行できます。 有効な許可リストは、許可リストを宣言しているすべてのソースの積集合であり、和集合ではありません。allowリストを宣言しないソースでは、このキーに独自の制限はありません。
ルールでは、次のセレクターが使用されます。
| Selector | 一致 |
|---|---|
Shell(...) | シェル コマンド。 コマンド プレフィックスと一致するには、 <command> * ( git push * など) を使用します。それ以外の場合は、ルールが正確なテキストと一致します。 |
Bash(...) は、 Shell(...)の互換性エイリアスです。 | |
PowerShell(...) では、大文字と小文字を区別しないコマンドの照合で、同じセレクターファミリーを使用します。 | |
Read(...) | ファイルの読み取りと表示のパス。 glob パターンとこれらのルートをサポートします。ファイルシステム ルートの // 、ワークスペース ルートの / 、ホーム ディレクトリの ~/ 、現在の作業ディレクトリの ./ 。 |
Edit(...) | ファイルの書き込みパスと編集パスは、 Read(...)と同じ方法で一致しました。 |
Write(...) は Edit(...) の別名です。 | |
Domain(...) | ネットワークの送信元。 ベア ホストは既定で HTTPS に設定され、ホストの照合では大文字と小文字が区別されません。 |
*.を使用してサブドメインを含めます。たとえば、*.example.comexample.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もブロックされます。 この設定では、/permissions assistedや/allow-all autoはブロックされません。permissions.disableAssistedPermissionsMode設定では、ユーザーがassisted permissionsを有効にできるかどうかを制御します。 - VS Codeでは、グローバル自動承認設定 (
chat.tools.global.autoApprove) はオフになっており、再度有効にすることはできません。 - GitHub Copilot appでは、ユーザーが **[設定]******Sessions で既定として選択した場合でも、セッションで > に すべて承認 を使用することはできません。
このキーでは、すべてのポリシー レイヤーで最も制限の厳しい値が優先されます。 任意のレイヤーによって設定された "disable" は効力を持ち、その設定は緩められません。 下位権限レイヤーまたはチームごとのオーバーライドでは、どのレイヤーでもバイパス モードが無効になると、このキーをアンマネージドに戻すことはできません。
メモ
disableBypassPermissionsModeにCopilot CLIが認識しない値が設定されている場合、CLI は問題をログに記録し、"disable"をフェールクローズの既定値として適用します。
disableAssistedPermissionsMode
ユーザーがtrueを有効にできないようにするには、assisted permissionsをpermissions.disableAssistedPermissionsModeに設定します。 この設定では、バイパス モードは無効になりません。
デフォルトモード
permissions.defaultModeを"manual"、"assisted"、または"allow-all"に設定して、新しいセッションの既定のアクセス許可モードを選択します。 選択したモードが使用できないか、ポリシーによってブロックされている場合、セッションは手動承認で開始されます。
この設定では、ロック モードではなく、既定値が選択されます。 セッションに対して明示的に許可される選択は、マネージド既定値よりも優先されます。 再開されたセッションは、現在のポリシー制限に従って保存されたモードを維持します。
Copilot CLIでは、この管理された既定値がユーザーのdefaultPermissionMode設定よりも優先されます。
テレメトリ
OpenTelemetry エクスポートを構成し、使用状況データを Copilot 選択したコレクターにルーティングします。
エクスポートされたシグナルと属性については、 OpenTelemetry reference を参照してください。
クライアントのサポートについては、 サポートされているキーの表 を参照してください。
telemetry プロパティを設定すると、指定Copilotエンドポイントにテレメトリが送信されます。 次のサブプロパティがサポートされています。
enabled: テレメトリのエクスポートを有効にするにはtrueに設定するか、オフにするにはfalseします。endpoint: OTLP コレクターの URL (たとえば、https://otel-collector.example.com)。protocol: テレメトリ エクスポートのトランスポート プロトコル。 指定できる値は、"http/json"と"http/protobuf"です。capture:ID と機密性の高いコンテンツに対して、独立したきめ細かいコントロールを持つオブジェクト。 すべてのサブプロパティの既定値はfalse。 詳細については、「キャプチャ コントロール」を参照してください。captureContent:prompts、responses、toolArguments、toolOutput、およびpolicyDetailのキャプチャ クラスをまとめて有効または無効にする、従来からある短縮記法。identityには影響しません。 明示的に設定されたcaptureサブプロパティは、そのクラスのcaptureContentよりも優先されます。lockCaptureContent: マネージドtrueオブジェクトでそのクラスまたはcaptureContentを明示的に構成しない限り、ローカル設定でレガシ コンテンツ クラスが有効にならないように、telemetryに設定します。 このプロパティは ID を制御しません。serviceName: テレメトリ サービス名のラベル (たとえば、"copilot")。resourceAttributes: エクスポートされたすべてのテレメトリ (たとえば、{"deployment.environment": "production"}) にアタッチする OpenTelemetry リソース属性のオブジェクト。headers: 各テレメトリ要求に含めるリテラル HTTP ヘッダーのオブジェクト (コレクターのAuthorizationヘッダーなど)。 同じendpointオブジェクトでtelemetryを構成する必要があります。 ヘッダー値は、ログまたは状態の出力には含まれません。 HTTP はプレーンテキストで値を送信するため、ヘッダーに資格情報が含まれている場合は HTTPS を使用してください。headersProvider: 新しい OTLP ヘッダーを提供するコマンドを実行するオブジェクト、または、動的ヘッダーを無効にするにはfalse。 マネージド ヘルパーはユーザー ヘルパーをオーバーライドし、マネージド静的コンテンツheadersはユーザー ヘルパーの出力よりも優先されます。 このプロパティは、 Copilot CLIに適用されます。 フィールドと動作については、「 動的認証ヘッダー」を参照してください。
マネージド telemetry 値は、ローカル設定、SDK 構成、環境変数よりも優先されます。 複数のマネージド ソースで telemetryが定義されている場合、最も優先順位の高いソースは完全なマネージド telemetry オブジェクトを提供します。 優先順位の低いマネージド ソースのオブジェクトはそれにはマージされません。
キャプチャ コントロール
プロンプト、応答、またはツール コンテンツを収集せずにエージェントのアクティビティを関連付ける必要がある場合は、capture.identity を使用します。 他のキャプチャ クラスを使用して、監査または調査に必要な追加のコンテンツのみを収集します。
詳細なキャプチャ コントロールは、Agent Host を使用する Copilot CLI、GitHub Copilot app、VS Code セッションでサポートされます。
VS Codeのローカル エージェント ハーネスは、 capture.identity と従来の captureContent 設定をサポートしますが、 prompts、 responses、 toolArguments、 toolOutput、または 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 識別子、およびシークレットを含む可能性があるワークスペース、ユーザー プロファイル、またはファイルへのパスが含まれます。 ユース ケースに必要なキャプチャ クラスのみを有効にし、承認されたコレクターにデータを送信します。
リモートコントロール
デバイスでホスト Copilot セッションをリモートで制御できるかどうかを制限します。 これは、他のデバイスでホストされているセッションをリモートで制御するユーザーの機能には影響しません。
mode:デバイス上のセッションのリモート 制御を禁止する"disabled"に設定"requireSSO"、githubDotComOrganizationsに記載されている組織に対して SSO が承認されたクライアントからのリモート 制御のみを許可するか、無制限に許可するように"enabled"します。githubDotComOrganizations: 組織ログインの配列。modeが"requireSSO"の場合に必要です。
allowedMcpServers
実行が許可されている MCP サーバーの許可リストを定義します。 設定すると、少なくとも 1 つのエントリに一致するサーバーのみが許可されます。 一致しないサーバーはすべてブロックされます。
deniedMcpServers内のエントリに従って、すべてのサーバーを許可するには、このキーを完全に省略します。 組み込みの既定のサーバーを除くすべてのサーバーをブロックするには、空の配列に設定します。
複数の設定ソースが allowedMcpServersを定義する場合、有効な許可リストはすべてのソースの共通部分です。 サーバーは、すべてのソースで実行を許可する必要があります。
各エントリには、マッチャー プロパティが 1 つだけ含まれている必要があります。
| 財産 | 一致する動作 | 該当するサーバー |
|---|---|---|
serverName | ユーザー割り当てサーバー ラベルと正確に一致します。 ワイルドカードはサポートされていません。 許可リスト エントリでは大文字と小文字が区別され、文字、数字、および文字 _、.、/、および - に限定されるため、microsoft/ などのレジストリ名を使用できます。 ユーザーはサーバー名を選択するため、サーバーの ID を適用する必要がある場合は、 serverUrl または serverCommand を使用します。 | 任意のサーバー。 インメモリ サーバーでは、 serverNameのみを使用できます。 |
serverUrl | リモート サーバーの URL と一致します。 サブドメインまたはパス プレフィックスの * ワイルドカード ( https:/ や https:/など) をサポートします。 | HTTP またはサーバー送信イベント (SSE) 経由で接続するリモート サーバー。 このプロパティは、URL がある場合でも、ローカル サーバーには適用されません。 |
serverCommand | ローカル サーバーの正確なコマンドと各引数 (たとえば、 ["npx", "-y", "my-mcp-server"]) と一致します。 ワイルドカードとコマンド ライン拡張はサポートされていません。 | 標準の入力と出力 (stdio) を使用するローカル サーバー。 このプロパティは、コマンドがある場合でも、リモート サーバーには適用されません。 |
このキーは、エンタープライズ チームでオーバーライドできます。 エンタープライズ レベルで overridable の下にマッチャー オブジェクトをラップし、通常の構文を使用して、各エンタープライズ チームのファイルで許可リストと拒否リストを定義します。
URL の正規化
serverUrl パターンとサーバー URL を比較する前に、クライアントは両方の値を正規化します。
- スキームとホストを小文字に変換します。
- 国際化または Unicode のホスト名を Punycode に変換します。
- HTTP または HTTPS の
:80の既定のポート:443を削除します。 - パーセントエンコードされたホスト オクテットをデコードします。 たとえば、
%65vilをevilにします。 - DNS 名から URL フラグメントと末尾のドットを削除します。
- 権限コンポーネント内のワイルドカードが、
/境界を越えてパスに一致しないようにします。
拒否されたMCPサーバー
無条件にブロックされる MCP サーバーを定義します。 エントリに一致するサーバーは、 allowedMcpServersのエントリにも一致する場合でもブロックされます。 拒否規則は常に許可規則よりも優先されます。
組み込みの Copilot MCP サーバーなど、ファースト パーティGitHub サーバーは拒否規則から除外され、ブロックできません。
複数の設定ソースが deniedMcpServersを定義する場合、有効な拒否リストはすべてのソースの和集合になります。 すべてのソースによってブロックされたサーバーは、すべてブロックされます。
各エントリは、serverNameで説明されているのと同じserverUrl、serverCommand、またはallowedMcpServersプロパティを使用します。
sandbox
Copilot内のCopilot CLI、VS Code Agent Host セッション、およびGitHub Copilot appに対して最小限のローカル サンドボックス制限を適用します。 マネージド サンドボックス設定では、既定値ではなく制限が適用されます。
- 強制オン設定の場合、
trueの管理値によって設定が適用されます。falseまたは省略すると、ユーザーの構成は変更されません。 - 機能設定の場合、
falseの管理値によって機能が禁止されます。trueまたは省略すると、ユーザーの構成は変更されません。 - マネージドの読み取り/書き込みパス リストおよび読み取り専用パス リストでは、ユーザーが構成した許可が制限される一方、マネージドの拒否パス リストはユーザーが構成した拒否に追加されます。
VS Codeでは、これらの設定は、エージェント ホストの組み込みサンドボックスを使用するCopilot セッションに適用されます。 このサポートは、VS Code内のすべての種類のチャット セッションまたはターミナルに適用されるわけではありません。 ポリシーでバイパスを許可している場合、ユーザーはサンドボックス バイパスのアクセス許可プロンプトに応答するときに、現在のセッションのサンドボックスを引き続きオフにすることができます。 これにより、組織のポリシーは変更されません。
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サンドボックスで実行するには、セッションで開始された言語サーバーが必要です。 Copilot CLIでは、このブール値は既定でtrueに設定され、サンドボックスが有効な場合に適用されます。auth.git:false、サンドボックス内で認証された Git HTTPS 操作用の GitHub トークンがランタイムによって挿入されないようにします。auth.gh:false、サンドボックス内のGitHub CLIに対してランタイムがGitHub トークンを挿入できないようにします。allowDevToolAccess:falseは、開発ツールの構成、キャッシュ、レジストリ、およびツールチェーンへの自動アクセスを防止します。 これらの場所には、パッケージ レジストリの資格情報またはトークンを含めることができます。 アクセスを無効にすると、必要なパスを明示的に付与しない限り、パッケージの復元、認証されたレジストリ操作、または共有キャッシュを使用するビルドが失敗する可能性があります。learningMode: サポートされているWindowsホストのサンドボックス コマンドが、ブロックされたアクセスを記録するか、記録して許可するかを制御します。sandbox.learningModeを参照してください。userPolicy: ファイルシステム、ネットワーク、および macOS 固有の Seatbelt 制限を構成するオブジェクト。 サポートされるプロパティについては、次のセクションで説明します。
サポートされていない CLI ホストでは、enabled: trueにも強制が必要でない限り、サーバーで管理されるfailIfUnavailable: trueを拒否できます。 ネイティブ MDM、ファイル ベースの管理設定、ポリシー ヘルパー設定では引き続き enabled: trueが適用されるため、サンドボックスを使用せずに実行されるのではなく、サンドボックス化されたコマンドが失敗します。
enabledとfailIfUnavailableの両方が必要な場合、CLI は適用を確立できない場合にモデルとツールの実行をブロックします。 報告されたホストまたはポリシーの問題を解決し、新しいセッションを開始してください。
サーバーで管理されるエンタープライズ チームのオーバーライドの場合は、サンドボックス オブジェクト全体を overridableでラップします。
{
"sandbox": {
"overridable": {
"enabled": true,
"allowBypass": false
}
}
}
ラッパーは、 sandbox内の直接の唯一のプロパティである必要があります。
sandbox.enabledなどの個々のサブプロパティは、独自のoverridable ラッパーを使用できません。 エンタープライズ チーム ファイルの通常のサンドボックス オブジェクトは、ラップされた既定値全体を置き換えるので、残すべきすべての制限を含めます。
sandboxを省略すると、エンタープライズの既定値が保持されます。
sandbox.learningMode
Windowsのサンドボックス化されたコマンドに対するアクセスの記録を制御します。 この設定は、サンドボックスがオフの場合や、Windows ホストがアクセス記録をサポートしていない場合には影響しません。
"deny"(既定値): ファイル システムとプロセスの制限を適用し、ブロックされたアクセスを記録します。"allow":ファイルシステムとプロセスへの、そうでなければブロックされるアクセスを記録して許可します。 ネットワーク制限は引き続き適用されます。 このモードでは、通常のファイルシステムとプロセス保護は提供されません。
"allow"値は、Intune や Windows レジストリなどのネイティブ 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 固有の Seatbelt オプションを構成します。
keychainAccess:falseは、サンドボックス化されたプロセスが macOS キーチェーンにアクセスできないようにします。
Footnotes
-
fusionTierrequires Copilot CLI 1.0.104-3 or later. ↩ -
fusionTierrequires VS Code 1.144.0 or later. ↩ -
fusionTierrequires the GitHub Copilot app 1.1.33-4 or later. ↩ -
autoTierrequires Copilot CLI 1.0.87-0 or later. ↩ -
autoTierrequires VS Code 1.140.0 or later. ↩ -
Adding
sandboxto managed settings requires Copilot CLI 1.0.93 or later. Connections from older clients are blocked. ↩ -
Adding
sandboxto managed settings requires VS Code 1.141.0 or later. Connections from older clients are blocked. Agent Host's built-in sandbox supports these settings from version 1.138.0. From version 1.140.0, settingsandbox.enabledtotrueprevents users from turning sandboxing off with the session's sandbox toggle. For scope and bypass behavior, seesandbox. ↩ -
Adding
sandboxto managed settings requires the GitHub Copilot app 1.1.26 or later. Connections from older clients are blocked. ↩