Skip to main content

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

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

このリファレンスを使用して、 managed-settings.jsonで現在サポートされているキーについて理解します。

展開方法とサポートされているクライアントについては、 エンタープライズ管理設定の構成 を参照してください。

優先順位ルール

複数の設定ソースが存在する場合、この一覧の前の設定は、一覧の後の設定よりも優先されます。

  1. MDM で管理される設定
  2. サーバーで管理される設定
  3. ファイルベースの設定
  4. ユーザー レベルの設定

Copilot CLI (コパイロット CLI)では、sandbox キーはこれらの優先順位規則の例外です。 MDM で管理される、サーバーで管理される、ファイルベースの設定からのマネージド サンドボックスの制限は、互いに組み合わせ、最も制限の厳しい方向でユーザーのサンドボックス設定と組み合わせます。

サポートされているキー

PurposeCopilot CLI (コパイロット CLI)VS CodeGitHub Copilot アプリCopilot クラウドエージェントJetBrains IDEs
permissions.disableBypassPermissionsModeバイパスまたは YOLO スタイルの allow-all 動作を無効にします
permissions.model自動モデルの選択を新しい会話の既定値として設定します
enabledPlugins特定のプラグインをキーで有効または無効にする
extraKnownMarketplacesユーザーがアクセスできるプラグイン マーケットプレースを追加します
strictKnownMarketplacesプラグインのインストールを明示的に一覧表示されたマーケットプレースに制限する
telemetryOpenTelemetry エクスポートを設定し、Copilot 使用状況データを任意のコレクターに送信します
remoteControlこのデバイスでホストされているセッションを、リストされている組織の制御クライアントの SSO 承認状態に基づいてリモートで制御できるかどうかを制限します。 他のデバイスでホストされているセッションをリモートで制御するユーザーの機能には影響しません
allowedMcpServers実行が許可されている MCP サーバーの許可リストを定義します。 一致しないサーバーはすべてブロックされます。 拒否規則に従って、すべてのサーバーを許可する場合は省略します
deniedMcpServers内のエントリにも一致する場合でも、無条件にブロックされる MCP サーバーを定義します。 allowedMcpServers
sandboxコマンドの実行、ファイルシステムとネットワーク アクセス、資格情報、ローカル MCP および LSP サーバーに対してローカル サンドボックスの最小制限を適用します

エンタープライズ チームに異なる設定を適用する

サーバーで管理される展開の場合、企業はエンタープライズ チームのメンバーシップに基づいて、ユーザーのグループに異なるガバナンスを適用できます。 企業はすべての設定を定義します。チーム メンバーシップは、特定の値のセットを受け取るユーザーのみを決定します。

チーム固有の値の対象となるキーを作成するには、managed-settings.json構文を使用して、{ "overridable": <VALUE> }でオーバーライド可能としてマークします。 オーバーライド可能なキーは、設定時にチームの値を使用するか、チームが設定を解除したときにエンタープライズの既定値にフォールバックします。 { "overridable": <VALUE> }構文は、permissions.modelpermissions.disableBypassPermissionsModeallowedMcpServers、およびdeniedMcpServersキーに適用されます。 上書き可能としてマークされていないキーは、チームが変更できないエンタープライズ レベルの決定のままです。

enabledPluginsextraKnownMarketplaces は追加的に動作します。 エンタープライズ managed-settings.json はベースラインを設定します。エンタープライズ チーム ファイルでは、その上にプラグインとマーケットプレースを追加できます。 完全なセットアップ手順については、 エンタープライズ管理設定の構成 を参照してください。

構成例

次の例は、これらのキーを 1 つの管理設定ファイルに示しています。

{
  "permissions": {
    "disableBypassPermissionsMode": "disable",
    "model": "auto"
  },
  "enabledPlugins": {
    "my-plugin@agent-skills": true
  },
  "extraKnownMarketplaces": {
    "agent-skills": {
      "source": {
        "source": "github",
        "repo": "OWNER/REPO"
      }
    }
  },
  "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 は無効にする必要があることを示します。 「エンタープライズで管理されるプラグインの標準について」を参照してください。

extraKnownMarketplaces

ユーザーが使用できる追加のプラグイン マーケットプレースを定義します。 各エントリは、 source プロパティを含む名前付き Marketplace オブジェクトです。 次のソースの種類がサポートされています。

  • "github"repo形式のOWNER/REPOが必要です。省略可能なref (ブランチ、タグ、または SHA) とpath (サブディレクトリ)
  • "git"urlが必要です。省略可能な refpath
  • "directory"path が必要

エンタープライズで管理されるプラグインの標準について」を参照してください。

strictKnownMarketplaces

プラグインのインストールを、企業によって明示的に定義されたマーケットプレースのみに制限します。 空の配列は、完全なロックダウンを意味します。 各エントリは、ソースの種類を示す source プロパティを持つ Marketplace オブジェクトです。 次のソースの種類がサポートされています。

  • "github"repo形式のOWNER/REPOが必要です。省略可能なrefpath
  • "git"urlが必要です。省略可能な refpath
  • "url"urlが必要です。省略可能な headers オブジェクト
  • "npm"package が必要
  • "file"path が必要
  • "directory"path が必要
  • "hostPattern"hostPattern が必要です(マーケットプレイス ホストに一致する正規表現)
  • "pathPattern" — Marketplace のパスに一致する正規表現である pathPattern が必要です

アクセス許可

disableBypassPermissionsMode

ユーザーがバイパス モード ("YOLO モード" とも呼ばれます) を有効にできないようにします。 バイパス モードを使用すると、エージェントは承認を求めずにコマンドの実行、ファイルへのアクセス、URL のフェッチを行うことができます。

disableBypassPermissionsMode"disable" に設定すると、ユーザーはバイパス モードを有効にできません。

  • Copilot CLI (コパイロット CLI)では、すべてのアクセス許可 (--yolo--allow-all、および個々の--allow-all-tools--allow-all-paths、および--allow-all-urlsオプション) を許可するためのコマンド ライン オプションはすべて起動時に抑制され、昇格されたアクセス許可を付与することはできません。 /yoloおよび/allow-allスラッシュ コマンドもブロックされます。
  • VS Codeでは、グローバル自動承認設定 (chat.tools.global.autoApprove) はオフになっており、再度有効にすることはできません。
  • GitHub Copilot アプリでは、[ツールのアクセス許可] の [すべて許可] 設定がセッション設定でブロックされます。
  • このキーは、エンタープライズ チーム マッピングによってオーバーライドできます。 managed-settings.jsonでは、{ "overridable": "disable" }構文を使用して、チームごとにキーの構成を特殊化します。 その後、チーム設定ファイルで "disableBypassPermissionsMode": "unmanaged" を設定し、対象チームのメンバーの managed-settings.json よりも優先される特殊化を提供できます。

モデル

新しい会話の既定として自動モデル選択を設定します。 「について Copilot自動モデルの選択」を参照してください。

  • permissions.model"auto" に設定すると、ユーザーが会話ごとに別のモデルを指定しない限り、新しいセッションでは自動モデルが使用されます。
  • このキーは、エンタープライズ チーム マッピングによってオーバーライドできます。 managed-settings.jsonでは、{ "overridable": "auto" }構文を使用して、チームごとにキーの構成を特殊化します。 その後、チーム設定ファイルで "model": "unmanaged" を設定し、対象チームのメンバーの managed-settings.json よりも優先される特殊化を提供できます。

テレメトリ

OpenTelemetry エクスポートを構成し、使用状況データを Copilot 選択したコレクターにルーティングします。

このプロパティは、 Copilot CLI (コパイロット CLI) と VS Codeでサポートされています。

telemetry プロパティを設定すると、指定Copilotエンドポイントにテレメトリが送信されます。 次のサブプロパティがサポートされています。

  • enabled: テレメトリのエクスポートを有効にするには true に設定するか、オフにするには false します。
  • endpoint: OTLP コレクターの URL (たとえば、 https://otel-collector.example.com)。
  • protocol: テレメトリ エクスポートのトランスポート プロトコル。 指定できる値は、"http/json""http/protobuf" です。
  • captureContent: テレメトリ ペイロードにプロンプトと応答のコンテンツを含める場合は true に設定するか、除外する false
  • lockCaptureContent: ユーザーがtrue設定を変更できないようにするには、captureContentに設定します。
  • serviceName: テレメトリ サービス名のラベル (たとえば、 "copilot")。
  • resourceAttributes: エクスポートされたすべてのテレメトリ (たとえば、 {"deployment.environment": "production"}) にアタッチする OpenTelemetry リソース属性のオブジェクト。
  • headers: 各テレメトリ要求に含める HTTP ヘッダーのオブジェクト (コレクターの Authorization ヘッダーなど)。

remoteControl

デバイスでホスト Copilot セッションをリモートで制御できるかどうかを制限します。 これは、他のデバイスでホストされているセッションをリモートで制御するユーザーの機能には影響しません。

  • mode:デバイス上のセッションのリモート 制御を禁止する "disabled" に設定 "requireSSO"githubDotComOrganizationsに記載されている組織に対して SSO が承認されたクライアントからのリモート 制御のみを許可するか、無制限に許可するように "enabled" します。
  • githubDotComOrganizations: 組織ログインの配列。 mode"requireSSO"に必要です。

allowedMcpServers

実行が許可されている MCP サーバーの許可リストを定義します。 設定すると、少なくとも 1 つのエントリに一致するサーバーのみが許可されます。 一致しないサーバーはすべてブロックされます。

deniedMcpServers内のエントリに従って、すべてのサーバーを許可するには、このキーを完全に省略します。 組み込みの既定のサーバーを除くすべてのサーバーをブロックするには、空の配列に設定します。

複数の設定ソースが allowedMcpServersを定義する場合、有効な許可リストはすべてのソースの共通部分です。 サーバーは、すべてのソースで実行を許可する必要があります。

各エントリには、マッチャー プロパティが 1 つだけ含まれている必要があります。

財産一致する動作該当するサーバー
serverNameユーザー割り当てサーバー ラベルと正確に一致します。 ワイルドカードはサポートされていません。 ユーザーはサーバー名を選択するため、サーバーの 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を削除します。
  • パーセントエンコードされたホスト オクテットをデコードします。 たとえば、%65vilevil にします。
  • DNS 名から URL フラグメントと末尾のドットを削除します。
  • 権限コンポーネント内のワイルドカードが、 / 境界を越えてパスに一致しないようにします。

deniedMcpServers

無条件にブロックされる MCP サーバーを定義します。 エントリに一致するサーバーは、 allowedMcpServersのエントリにも一致する場合でもブロックされます。 拒否規則は常に許可規則よりも優先されます。

組み込みの Copilot MCP サーバーなど、ファースト パーティGitHub サーバーは拒否規則から除外され、ブロックできません。

複数の設定ソースが deniedMcpServersを定義する場合、有効な拒否リストはすべてのソースの和集合になります。 すべてのソースによってブロックされたサーバーは、すべてブロックされます。

各エントリは、serverNameで説明されているのと同じserverUrlserverCommand、またはallowedMcpServersプロパティを使用します。

sandbox

Copilot CLI (コパイロット CLI)に対して最小限のローカル サンドボックス制限を適用します。 マネージド サンドボックス設定では、既定値ではなく制限が適用されます。

  • 強制オン設定の場合、 true の管理値によって設定が適用されます。 false または省略すると、ユーザーの構成は変更されません。
  • 機能設定の場合、 false の管理値によって機能が禁止されます。 true または省略すると、ユーザーの構成は変更されません。
  • マネージド読み取り/書き込みおよび読み取り専用パス リストでは、ユーザー構成の許可が制限され、マネージド拒否パスはユーザー構成拒否に追加されます。

次のサブプロパティがサポートされています。

  • enabled: true にはサンドボックスが必要であり、ユーザーが無効にできないようにします。
  • allowBypass: false 、サンドボックスの外部で個々のコマンドを実行することをモデルが要求できないようにします。
  • addCurrentWorkingDirectory: false 、 Copilot CLI (コパイロット CLI) がサンドボックスの読み取り/書き込みパスに現在の作業ディレクトリを自動的に追加できないようにします。
  • sandboxMcpServers: true サンドボックスで実行するには、 Copilot CLI (コパイロット CLI) によって開始されたローカル MCP サーバーが必要です。 リモート MCP サーバーは、ローカル サンドボックスでは実行されません。
  • sandboxLspServers: true サンドボックスで実行するには、 Copilot CLI (コパイロット CLI) によって起動された言語サーバーが必要です。
  • gitAuth: false 、 Copilot CLI (コパイロット CLI) がサンドボックス内の認証済みの Git HTTPS 操作に GitHub トークンを挿入することを防ぎます。
  • ghAuth: falseCopilot CLI (コパイロット CLI)がサンドボックス内のGitHubにGitHub CLI トークンを挿入するのを防ぎます。
  • allowDevToolAccess: false は、開発ツールの構成、キャッシュ、レジストリ、およびツールチェーンへの自動アクセスを防止します。 これらの場所には、パッケージ レジストリの資格情報またはトークンを含めることができます。 アクセスを無効にすると、必要なパスを明示的に付与しない限り、パッケージの復元、認証されたレジストリ操作、または共有キャッシュを使用するビルドが失敗する可能性があります。
  • userPolicy: ファイルシステム、ネットワーク、および macOS 固有の Seatbelt 制限を構成するオブジェクト。 サポートされるプロパティについては、次のセクションで説明します。

sandbox.userPolicy.filesystem

サンドボックス プロセスのファイルシステム アクセスを構成します。 パスは絶対パスにする必要があります。 マネージド許可リストは、親パスまたは子パス カバレッジではなく、正確なパス文字列によってユーザーが構成したリストと照合されます。

  • readwritePaths: サンドボックス 化されたプロセスが読み取りと書き込みを行うことができるパスの配列。 ユーザーが構成したパスは、その正確な文字列がこのプロパティを指定するすべてのマネージド ソースにも表示される場合にのみ使用できます。 空のマネージド配列では、ユーザーが構成したすべての読み取り/書き込みパス許可が削除されますが、一時ディレクトリや現在の作業ディレクトリなど、個別にアセンブリされたアクセスは削除されません。
  • readonlyPaths: サンドボックス プロセスが読み取ることができるが書き込みできないパスの配列。 ユーザーが構成したパスは、その正確な文字列がこのプロパティを指定するすべてのマネージド ソースにも表示される場合にのみ使用できます。 空のマネージド配列は、ユーザーが構成したすべての読み取り専用パス許可を削除しますが、個別にアセンブリされたアクセス権は削除しません。
  • deniedPaths: サンドボックス プロセスがアクセスできないパスの配列。 マネージド値は、ユーザーの拒否されたパスに置き換えではなく、追加されます。

sandbox.userPolicy.network

サンドボックス プロセスのネットワーク アクセスを構成します。

  • allowOutbound: false は送信ネットワーク アクセスをブロックします。
  • allowLocalNetwork: false ローカル ネットワークへのアクセスを禁止します。

ネットワークの動作はオペレーティング システムによって異なります。 特に、一部のアプリケーションではプロキシ設定を無視できるため、プロキシは完全なエグレス制御境界ではありません。

sandbox.userPolicy.seatbelt

macOS 固有の Seatbelt オプションを構成します。

  • keychainAccess: false は、サンドボックス化されたプロセスが macOS キーチェーンにアクセスできないようにします。