Skip to main content

ローカル サンドボックス設定の構成

/sandboxの Copilot CLI スラッシュ コマンドを使用して、ローカル サンドボックスでファイルシステム アクセス、ネットワーク接続、およびシステム機能を制限する方法を制御します。

メモ

GitHub Copilotのローカル サンドボックスはパブリック プレビューにあり、変更される可能性があります。

重要

Windowsでのローカル サンドボックスには、Windows Insider ビルドが必要です。

ローカル サンドボックスの構成について

/sandboxスラッシュ コマンドを使用すると、追加のパスの付与、ネットワーク アクセスの調整、サンドボックスのオンとオフを切り替えることができます。

Copilotのクラウドおよびローカル サンドボックスの概念の概要については、「クラウドサンドボックスとローカルサンドボックスについて GitHub Copilot」を参照してください。

サンドボックス構成を開く

  1. Copilot CLI セッションを開始します。

  2. /sandboxスラッシュ コマンドを入力します。

    これにより、対話型の構成インターフェイスが開き、4 つのタブ ( GeneralAuthFilesystemNetwork) が表示されます。 タブを使用してタブを切り替えます。 Esc キーを押して変更を保存し、構成を閉じます。

全般設定の構成

[ 全般 ] タブでは、最上位レベルのサンドボックスの動作を制御します。 エンタープライズ管理設定で値が適用されると、ダイアログによって設定に (managed) ラベルが付けられます。これにより、設定を変更できなくなります。

SettingDescription
サンドボックスを有効にするサンドボックス内でシェル コマンドを実行します。
/sandbox enable/sandbox disableで切り替えることもできます。
サンドボックスのバイパスを許可する承認を受けて、個々のコマンドをサンドボックスの外部で実行するようにモデルに要求します。 既定ではオンになっています。 詳細については、「 サンドボックス バイパスの許可」を参照してください。
サンドボックス MCP サーバーサンドボックス内で MCP サーバーを実行します。 既定ではオンになっています。
サンドボックス LSP サーバーサンドボックス内で言語サーバー (LSP サーバー) を実行します。 既定ではオンになっています。

サンドボックスのバイパスを許可する

[ サンドボックスバイパスを許可する ] 設定では、サンドボックス内でコマンド Copilot 正常に実行できない場合の動作を制御します。

  • オン (既定値): サンドボックス内でコマンドが失敗した場合は、 Copilot がサンドボックスの外部でコマンドを実行することを許可するように求められます。 このプロンプトへの応答は、この特定のコマンドの実行試行に適用されます。 必要に応じて、セッションの残りの部分でサンドボックスを無効にするか (企業で許可されている場合)、代わりに Copilot を操作するための指示を入力することもできます。
  • オフ: Copilot サンドボックスでコマンドを正常に実行できない場合は、タスクの作業を停止し、エラーを報告します。

認証設定の構成

[ 認証 ] タブでは、サンドボックス内で実行されているコマンドで資格情報を使用できるかどうかを制御します。 他のタブと同様に、エンタープライズ管理の値は (managed) として表示され、変更することはできません。

SettingDescription
Git を認証する認証された HTTPS GitHubが資格情報ヘルパーなしでサンドボックス内で動作するように、git トークンを挿入します。 GitHub以外のホストの場合は、代わりにサンドボックス git コマンドで独自の保存された資格情報を使用できるようになります。 既定ではオンになっています。
gh を認証する
GH_TOKENエクスポートして、GitHub CLI (注: ghではなくcopilot CLI) がサンドボックス内で動作するように、サンドボックスがブロックする格納された資格情報 (構成ディレクトリまたは OS キーチェーン) に到達しないようにします。 既定ではオンになっています。
キーチェーン アクセスを許可するmacOS でのみ使用できます。 たとえば、 gitgh 資格情報ヘルパーによって使用される資格情報にアクセスするために、サンドボックス コマンドで macOS キーチェーンを使用できるようにします。 既定ではオフになっています。

ファイルシステム設定の構成

[ファイルシステム] タブでは、サンドボックス プロセスがアクセスできるディレクトリとファイルを制御します。

既定では、 Copilot には、現在の作業ディレクトリの下にあるすべてのユーザーに対する読み取り/書き込みアクセス許可が付与されます。 Git リポジトリにいる場合は、 Copilot も付与されます。

  • リポジトリの .git ディレクトリ内および下にあるすべてのユーザーに対する読み取り/書き込みアクセス許可。
  • 現在の作業ディレクトリの上にあるリポジトリ内の他のすべてに対する読み取りアクセス許可。 作業ディレクトリ自体は読み取り/書き込みのままです。これは、より具体的な許可が 2 つの重複する場所で優先されるためです。
SettingDescription
作業ディレクトリを含める既定ではオンになっています。 現在の作業ディレクトリ (および外側のリポジトリの .git ディレクトリがある場合) は、読み取り/書き込みパスの一覧に自動的に追加されます。 作業ディレクトリに読み取り/書き込みアクセスを自動的に許可しない場合は、このオプションをオフにしてから、特定のパスへのアクセスを手動で許可します。
開発ツールへのアクセスを許可する既定ではオンになっています。 サンドボックス化されたコマンドに、開発者ツールの構成とキャッシュ (パッケージ マネージャー レジストリと格納するトークンを含む) への読み取りアクセスと、共有ビルド キャッシュへの読み取り/書き込みアクセスを許可します。そのため、インストールとビルドはサンドボックス内で動作します。 これは、/sandbox policy レポートに開発ツール アクセスとして表示されます。 これらの場所を明示的に許可する必要がある場合は、オフにします。

重要

[作業ディレクトリを含める] をオフにすると、Git リポジトリの .git ディレクトリ内および下にあるすべてのディレクトリへのアクセスが削除されます。 その結果、このディレクトリへのアクセスを手動で追加しない限り、 statusaddcommitdiff などの Git 操作は失敗します。

ファイルシステムパスルールの追加

サンドボックスに追加するパスを指定できます。 これにより、作業ディレクトリの外部にあるディレクトリとファイルに対する読み取り専用または読み取り/書き込みアクセス権を付与できます。 アクセスを拒否して、サンドボックスからディレクトリとファイルを除外することもできます。

  1. [ ファイルシステム ] タブで 、A キーを押して新しいパス ルールを追加します。

  2. ファイルまたはディレクトリのパスを入力します。 絶対パスを使用します (たとえば、macOS または Linux の/Users/octocat/projects/app、WindowsでのC:\Users\octocat\projects\appなど)。 次に、Enter キーを押します。

    メモ

    ディレクトリの追加には、そのサブツリー全体が含まれます。 ワイルドカードはサポートされていません。

  3. キーボードの左方向キーと右方向キーを使用して、アクセス許可オプション ( 読み取り/書き込み読み取り専用拒否) 間を移動します。 次に 、Enter キーを押してオプションを選択します。

ファイルシステム パスを追加したら、それらを編集または削除できます。

  1. 上方向キーと下方向キーを使用してパスを選択します。
  2. Enter キーを押してパスを編集するか、D キーを押して削除します。

ネットワーク設定の構成

[ ネットワーク ] タブでは、セキュリティで保護されたプロセスがネットワーク接続を行うことができるかどうかを制御します。

SettingDescription
送信接続を許可する既定ではオンになっています。 オンにすると、サンドボックス プロセスはインターネット上の外部ホストに到達できます。 サンドボックスをネットワークから完全に分離するには、これをオフにします。
ローカル ネットワークを許可する既定ではオンになっています。 オンにすると、サンドボックス プロセスはローカル ネットワーク上のホスト (たとえば、LAN 上の localhost やその他のデバイス) に到達できます。 サンドボックスがローカルまたはプライベート ネットワーク サービスに到達するのをブロックするには、これをオフにします。
HTTP プロキシHTTP プロキシを介してサンドボックスの送信トラフィックをルーティングします。
HTTP プロキシを介したトラフィックのルーティングに関するセクションを参照してください。

HTTP プロキシを介したトラフィックのルーティング

[ネットワーク] タブで [HTTP プロキシ] を選択して、プロキシ サーバー経由でサンドボックスの送信トラフィックを送信します。 プロキシ URL と、必要に応じて ユーザー名パスワードを入力します。 プロキシを削除するには、URL をクリアします。

次の点に注意してください。

  • プロキシは、[ 送信接続を許可する] がオンになっている間にのみ適用されます。 送信接続をオフにした場合、プロキシは設定に保持されますが、非アクティブなままです。
  • パスワードは、オペレーティング システムの資格情報ストアに安全に保存されます。 リテラル パスワードの代わりに ${VAR} 環境変数参照を入力することもできます。
  • Linux と macOS では、プロキシは協調的です。プロキシは標準のプロキシ環境変数を介して適用され、それらを受け入れている各ツールに依存します。 Windowsでは、サンドボックスによってプロキシが適用されます。
  • 組織では、マネージド設定を使用してプロキシ URL を適用できます。 その場合、URL は (managed)として表示されますが、ユーザー設定に格納されている独自の資格情報を指定することもできます。

サンドボックスをすばやく有効または無効にする

完全な構成インターフェイスを開かずに、サンドボックスのオンとオフを切り替えることができます。

  • 有効:/sandbox enable セッションに「Copilot CLI」と入力します。
  • 無効: /sandbox disable セッションに「Copilot CLI」と入力します。

これらのコマンドは、[全般] タブの [サンドボックスの有効化] 設定を変更します。

現在のサンドボックス設定の表示

設定は、settings.json構成ディレクトリのsandbox キーの下のCopilot CLIに格納されます。 構成ディレクトリの詳細については、 GitHub Copilot CLI の構成ディレクトリ を参照してください。

Copilot CLI セッション内から現在のサンドボックス設定を表示できます。

  1. /settings」と入力します。

/ キーを押して設定を検索します。

  1. sandboxを入力して、設定の一覧をフィルター処理します。

上記の手順では、保存した設定が表示されます。 有効なファイルシステム ポリシー (設定後に生成される読み取り/書き込み、読み取り専用、拒否されたパス)、自動許可、および管理ポリシーが組み合わされていることを確認するには、/sandbox policy入力します。 詳細については、「のローカル サンドボックスのファイルシステム ポリシーについて GitHub Copilot CLI」を参照してください。

詳細については、次を参照してください。