メモ
GitHub Copilotのローカル サンドボックスはパブリック プレビューにあり、変更される可能性があります。
ローカル サンドボックスについて
ローカル サンドボックスは、エージェントがオペレーティング システムサンドボックス内でユーザーに代わって呼び出すツールを実行します。 これにより、コンピューター上のファイル、ネットワーク リソース、資格情報へのアクセスを制限することで、意図しないコマンドの潜在的な影響が軽減されます。
ローカル サンドボックスは、 GitHub Copilot appのプロジェクトごとに個別に構成します。 この構成は、ローカル リポジトリと作業ツリー セッションに適用されます。 リモート ホスト上で実行されるクラウド サンドボックス セッションまたはセッションには適用されません。
作業ツリーを使用すると、同時実行セッションの分岐とファイルは分離されますが、コマンドがコンピューター上の他の場所にアクセスできる内容は制限されません。 ローカル サンドボックスにより、追加の保護が提供されます。
Copilotのクラウドおよびローカル サンドボックスの概要については、クラウドサンドボックスとローカルサンドボックスについて GitHub Copilot を参照してください。
プロジェクトでのローカル サンドボックスの有効化
ローカル サンドボックスは既定でオフになっています。 プロジェクト内の新しいローカル セッションに対して有効にするには:
- アプリの設定を開きます。
- 構成するプロジェクトを選択します。
- [ サンドボックス] で、[ サンドボックスの新しいセッション] をオンにします。
この設定は、プロジェクト内の新しいセッションに適用されます。 既に実行されているセッションは変更されません。
ほとんどのプロジェクトでは、既定のポリシーから始めます。 これにより、依存関係のインストール、ローカル開発サーバーへの接続、ブランチのプッシュ、プル要求の作成などの一般的な開発タスクが可能になります。 プロジェクトが機密性の高いフォルダーの横にある場合、ネットワーク アクセスを必要としない場合、または資格情報を使用しない場合は、制限を追加します。
プロジェクトのサンドボックス ポリシーの構成
サンドボックス ポリシーは、エージェント実行ツールがアクセスできるファイル、ネットワーク、資格情報を制御する一連のルールです。 プロジェクト設定は、サンドボックス セッションの開始時にアプリが要求するポリシーを記述します。 有効なポリシーは、エンタープライズ管理設定が適用される場合など、より制限が厳しい場合があります。
プロジェクト設定では、次の構成を行うことができます。
- ファイルシステム アクセス: 特定のパスへの追加の読み取り専用または読み取り/書き込みアクセス権を付与するか、パスを拒否します。
- ネットワーク アクセス: 送信インターネットとローカル ネットワーク アクセスを許可またはブロックします。
- 資格情報: Git と GitHub CLI の資格情報をサンドボックス内で使用できるかどうかを選択します。
ファイルシステム アクセスの構成
既定では、サンドボックス セッションには、そのワークスペースと現在の作業ディレクトリへの読み取り/書き込みアクセス権があります。 追加のフォルダーへのアクセスを許可したり、特定のフォルダーへのアクセスを禁止したりできます。
プロジェクト設定の [サンドボックス ] セクションで、次のいずれかの一覧を構成します。
- 追加の読み取り/書き込み: エージェント実行ツールが読み取りおよび変更できるフォルダー。
- 追加の読み取り専用: エージェント実行ツールが読み取ることができるが変更できないフォルダー。
- 拒否: エージェント実行ツールがアクセスできないフォルダー。
フォルダーを追加するには、適切なリストの [フォルダーの追加 ] をクリックし、フォルダーを選択します。 フォルダーを削除するには、そのパスの横にある削除アイコンをクリックします。
より広範な親フォルダーに読み取りまたは書き込みアクセス権がある場合、より具体的に拒否されたフォルダーは拒否されたままです。
Windowsでは、拒否されたパスをプロジェクト設定に保存できます。 アクティブなWindows サンドボックス機能が拒否を保証できない場合、セキュリティで保護されたコマンドは、サポートされていないポリシー メッセージで失敗します。 このコマンドは、アクセス可能な拒否されたパスまたはサンドボックスなしでは実行されません。
ネットワーク アクセスの構成
既定では、サンドボックス セッションはインターネットとローカル ネットワークに接続できます。 プロジェクト設定の [サンドボックス ] セクションで、次の設定を変更できます。
- 送信インターネット: GitHub やパッケージ レジストリなどのインターネット サービスへの接続を許可します。
- ローカル ネットワーク: ローカル開発サーバーへの接続を含む、ループバック接続とローカル ネットワーク接続を許可します。
ネットワーク制限は、パッケージのインストール、API 呼び出し、プレビュー サーバー、およびネットワーク接続を必要とするその他のツールに影響を与える可能性があります。
Linux では、サンドボックスは、シェル コマンドやローカル MCP または LSP サーバーなど、生成されたプロセスに対してローカル ネットワーク アクセスを個別に制御することはできません。 この設定は、Web 要求やリモート MCP 接続などのインプロセス操作にも適用されます。
資格情報の構成
既定では、認証済みの Git 操作と GitHub CLI 操作はサンドボックス内で使用できます。 次のいずれかの設定をオフにすることができます。
- Git 資格情報: 認証済みの HTTPS Git 操作を許可します。
- GitHub CLI 資格情報: GitHub CLI の認証を許可します。
資格情報アクセスを無効にすると、ブランチのプッシュやサンドボックス内からのプル要求の作成などの操作を防ぐことができます。
ポリシー変更の適用
ファイルシステム、ネットワーク、および資格情報の設定の変更は、新しいセッションまたは既存のセッションの再起動時に適用されます。 現在実行中のセッションのポリシーは変更されません。
履歴を保持したままセッションを再開するには、次のように入力します。
/restart-session
アプリは、オペレーティング システムがサンドボックス設定を適用できるかどうかを確認する前に、サンドボックス設定を受け入れます。 サポートは、最初のサンドボックス シェルの起動時にチェックされます。 ホストが要求されたポリシーを適用できない場合、シェルは unsupported-platform または unsupported-policy メッセージで失敗し、アンサンドボックスで実行されません。 現在サポートされている Windows バージョンについては、Copilot サンドボックスの Windows OS サポートを参照してください。
アプリに サンドボックスが使用できないと表示される場合は、報告された問題に対処し、[ サンドボックスの再試行] をクリックします。
セッションのサンドボックス設定の変更
アクティブなセッションのローカル サンドボックスを有効にするには、次のように入力します。
/sandbox on
セッションでオフにするには、次のように入力します。
/sandbox off
アクティブなローカル セッション中に、コマンドはそのセッションの永続的なオーバーライドを作成し、すぐに適用します。 オーバーライドによって、他のセッションのプロジェクトの既定値は変更されません。
セッションを開始する前にいずれかのコマンドを入力すると、新しいセッションによって継承されたプロジェクトの既定値が変更されます。
ローカル サンドボックスがオフの場合、エージェント実行コマンドは、ユーザー アカウントと同じファイル、ネットワーク、資格情報にアクセスできます。
クラウド サンドボックス セッションまたはリモート ホスト上で実行されるセッションには、ローカル サンドボックスを使用できません。
サンドボックスの外部でツールを実行する
サンドボックス ポリシーで許可されていないアクセス権がツールに必要な場合、アプリは サンドボックスの外部で実行プロンプトを 表示できます。 有効なポリシーに応じて、次のことができます。
- 操作を取り消します。
- サンドボックスの外部で操作を 1 回実行します。
- 現在のセッションの残りの部分でサンドボックスを無効にし、操作を実行します。
このプロンプトからサンドボックス化を無効にした場合、 アプリはこのセッションのサンドボックスをオフに表示します。 [ サンドボックスを再度有効にする ] をクリックしてオンに戻します。
サンドボックスを一時的に無効にしても、プロジェクトの既定値やセッションのオーバーライドは変更されません。 セッションが再起動または再アタッチされると終了します。
エンタープライズ所有者は、ユーザーがサンドボックスの外部でツールを実行できないようにすることができます。 詳細については、「エンタープライズ管理設定」を参照してください。