Skip to main content
Skip to content

エンタープライズ管理設定

Copilot クライアントで使用されるエンタープライズ管理設定スキーマについて説明します。

このリファレンスを使用して、 Copilotのエンタープライズ管理設定について理解します。 ほとんどの設定はmanaged-settings.jsonで設定できます。 デバイス管理を必要とする設定は、以下に記載されています。

ファイルを作成する手順については、 エンタープライズ管理設定を使い始める を参照してください。

サポートされているキー

| 鍵 | Purpose | Copilot CLI | VS Code | GitHub Copilot app | Copilot cloud agent | JetBrains IDEs | | --- | --- | --- | --- | --- | --- | --- | | permissions.disableBypassPermissionsMode | バイパスまたは YOLO スタイルのすべて許可動作を無効にします | | | | | | | permissions.deny | 特定の操作をブロックする | | | | | | | permissions.ask | 特定の操作を続行する前に、新しい人間の承認が必要です | | | | | | | permissions.allow | プロンプトなしで特定の操作を続行することを許可します | | | | | | | features.computerUse | ユーザーがコンピューターの使用を有効にできるかどうかを制御します | | | | | | | model | 優先モデルを新しい会話の既定値として設定します | | | | | | | autoTier | 新しい会話の既定の自動ルーティング層を設定します | | | | | | | enabledPlugins | 特定のプラグインをキーで有効または無効にする | | | | | | | extraKnownMarketplaces | ユーザーがアクセスできるプラグイン マーケットプレースを追加します | | | | | | | strictKnownMarketplaces | プラグインのインストールを明示的に一覧表示されたマーケットプレースに制限する | | | | | | | telemetry | OpenTelemetry エクスポートを設定し、Copilot 使用状況データを任意のコレクターに送信します | | | | | | | remoteControl | このデバイスでホストされているセッションを、リストされている組織の制御クライアントの SSO 承認状態に基づいてリモートで制御できるかどうかを制限します。 他のデバイスでホストされているセッションをリモートで制御するユーザーの機能には影響しません | | | | | | | forceRemoteSettingsRefresh | クライアントの起動時にサーバーで管理される新しい設定のフェッチが必要です | | | | | | | allowedMcpServers | 実行が許可されている MCP サーバーの許可リストを定義します。 一致しないサーバーはすべてブロックされます。 拒否規則に従って、すべてのサーバーを許可する場合は省略します | | | | | | | deniedMcpServers | allowedMcpServers 内のエントリにも一致する場合であっても、無条件にブロックされる MCP サーバーを定義します。 | | | | | | | sandbox | コマンドの実行、ファイルシステムとネットワーク アクセス、資格情報、ローカル MCP および LSP サーバーに対して、ローカル サンドボックスの最低限の制限を適用します。 クライアントの最小バージョン要件が適用されます。 | | (エージェント ホスト、1.138.0 以降) | | | |

telemetryのサポートは、サブプロパティとハーネスによって異なります。 詳細なキャプチャをサポートするクライアントについては、キャプチャ コントロールを参照してください。

構成例

次の例は、これらのキーを 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" }
    ]
  }
}

チーム ファイルで通常の配列を使用して、既定の許可リストを置き換えます。 キーを省略すると、エンタープライズの既定値が保持されます。 明示的な空の配列 ( []) は、アンマネージド ポリシーではなく、完全なロックダウンを意味します。

モデル

優先モデルを新しい会話の既定値として設定します。 これにより、企業のワークフローに最適な既定のモデルを選択できます。 ユーザーは、会話ごとに別のモデルを選択できます。

  • 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キーを使用する必要があります。

autoTier

選択したモデルが "auto"されたときに、新しい会話の既定のルーティング層を設定します。 許容される値は、最も制限の厳しいものから最も制限の緩いものまで、"efficiency"、"balance"、"intelligence"、および "unmanaged"です。 この設定では、モデル自体は選択されません。

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では、これは通常の 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 選択したコレクターにルーティングします。

クライアントのサポートについては、 サポートされているキーの表 を参照してください。

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に適用されます。 フィールドと動作については、 GITHUB 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/playwright-mcp などのレジストリ名を使用できます。 ユーザーはサーバー名を選択するため、サーバーの ID を適用する必要がある場合は、 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 の正規化

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 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 、サンドボックス内で認証された 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 キーチェーンにアクセスできないようにします。

sandbox の最小クライアント バージョンの適用

sandbox キーをマネージド設定に追加すると、Copilotはスコープ内のすべてのユーザーに対してローカル サンドボックスを適用します。 これらのユーザーは、ローカル サンドボックスをサポートする Copilot クライアント バージョンを使用する必要があります。 ユーザーがクライアントを少なくともサポートされている最小バージョンに更新するまで、 Copilot への接続はブロックされます。

サポート対象クライアント最小バージョン
VS Code
1.141.0
Copilot CLI (コパイロット CLI)
1.0.93
GitHub Copilot アプリ
1.1.26