GitHub Copilotローカルサンドボックスの設定方法|CLI・VS Code

GitHub Copilot CLI や Copilot アプリ、VS Code のエージェントにターミナルコマンドを任せていると、「勝手にファイルを消されたり、意図しない通信をされたりしないか」と不安になることがあります。承認ダイアログを毎回確認する運用は、長いセッションでは確認疲れも起きやすくなります。

2026年10月7日、GitHub は Copilot のローカルサンドボックスを一般提供(GA)にしました。エージェントが実行するコマンドのファイル・ネットワーク・認証情報へのアクセスを、OSレベルで制限できる機能です。ローカルサンドボックスは Copilot の通常の利用に含まれ、追加料金はありません。ただし、公式ドキュメントでは「ローカルサンドボックスは既定でオフ」と明記されており、自分で有効化しないと保護されません。

この記事では、Copilot CLI を中心に、有効化・動作確認・設定変更・元に戻す方法までを手順で説明し、Copilot アプリと VS Code の違いも整理します。

この記事で行うこと

  • ローカルサンドボックスで何が制限できるのかを理解する
  • Copilot CLI で /sandbox enable を使って有効化し、状態を確認する
  • ファイルパス・ネットワーク・認証情報の制限を設定する
  • Copilot アプリ、VS Code(Agent Host)での設定方法の違いを把握する
  • コマンドがブロックされたときの対処法を知る

前提条件・対象読者

項目内容
情報の確認日2026年10月12日
対象Copilot CLI、GitHub Copilot アプリ、VS Code の Agent Host セッション
料金ローカルサンドボックスは Copilot の利用に含まれ、追加料金なし。クラウドサンドボックスは別途使用量課金
基盤技術Microsoft eXecution Container(MXC)。共通のサンドボックスポリシーを、Windows・macOS・Linux のOS標準の隔離機能に変換して適用する

OSごとの前提条件は、公式ドキュメントに次のとおり記載されています。

OS前提条件
Windows(CLI / アプリ)Windows 11 25H2 に更新プログラム KB5124010 以降、または Windows 11 26H1 に KB5124006 以降
Windows(VS Code Agent Host)Windows 11 24H2 / 25H2 は KB5124008、26H1 は KB5124012。Windows 対応は Experimental と記載
Linux / WSL2(CLI)bubblewrap(bwrap)0.5.0 以降と slirp4netns が PATH にあること
Linux / WSL2(VS Code)bubblewrap と socat をインストール。WSL1 は非対応
macOSVS Code は追加の前提なし

> 補足:更新プログラムの番号や対応バージョンは、CLI/アプリと VS Code でドキュメントごとに記載が異なります。ご自身の環境では、公式ドキュメントの最新の記載を確認してください。

注意点:サンドボックスは仮想マシンではない

導入前に、次の点を理解しておくことが重要です。

  • 既定ではオフです。有効化するまで、Copilot が実行するシェルコマンドは、あなたのユーザーアカウントと同じ権限で動きます(ファイルの読み書き・削除、ネットワーク、認証情報の利用が無制限)
  • ローカルサンドボックスは、仮想マシンやコンテナの中でコマンドを動かす方式ではありません。プロセスが読み書きできるファイルや、到達できるネットワークを制限する、軽量な隔離です(公式ドキュメントでは「lighter-weight end」と表現)
  • 設定次第で隔離は弱まります。ネットワーク許可、追加パス、認証情報、開発ツールへのアクセス、サンドボックス外実行の許可は、いずれも隔離を弱める要素です
  • 有効化しても、アウトバウンド通信は既定で許可されています。通信も絞りたい場合は別途設定が必要です
  • サンドボックス外での実行を承認すると、認証情報のマスクやサンドボックスのプロキシはスキップされます。通常の環境変数に秘密の値が含まれている場合は、その値がコマンドから見える可能性があります

手順1:Copilot CLI でサンドボックスを有効化する

Copilot CLI を起動し、対話セッション内で次のコマンドを実行します。

/sandbox enable

実行すると、現在のセッションですぐにサンドボックスが使われます。公式ドキュメントによれば、有効化後は今後の対話セッションとプログラム実行(-p)でも使われ続け、設定は個人設定ファイル(既定では ~/.copilot/settings.json の sandbox.enabled)に保存されます。

> 補足:有効化の時点で別に開いていたセッションには、すぐには反映されません。そのセッションで /sandbox enable を実行するか、セッションを閉じて copilot --continue などで再開してください。

手順2:有効になっているかを確認する

状態は /sandbox status で確認します。

/sandbox status

実際に適用されるポリシー(読み書きできるパス、ネットワーク設定、ケーパビリティ)は /sandbox policy で確認できます。コマンドを付けると、実行せずにそのコマンドが受け取る開発ツールへのアクセスを事前確認できます。

/sandbox policy
/sandbox policy npm install

/sandbox policy npm install はコマンドを実行せずにポリシーをプレビューします。表示されたパスとネットワーク設定を確認し、Notes に「適用できなかった設定」が出ていないかも見ておきます。

手順3:既定の動作を理解する

公式ドキュメントに記載されている、有効化直後の既定の動作は次のとおりです。

項目既定の動作
書き込みカレントディレクトリと一時フォルダ。Gitリポジトリ内では .git も書き込み可
読み取りリポジトリのカレントより上の階層は読み取りのみ。選択されたシステム・開発ツールの場所も読み取り可
ホームディレクトリ全体許可されない。ほかのパスはブロック
アウトバウンド通信許可(ON)
ローカルネットワークCLI では拒否(OFF)
Git / gh の認証既定で有効。サンドボックス内にはプレースホルダーの認証情報が渡され、ローカルプロキシが承認済みHTTPS宛先にのみ実際の認証情報を差し替える

つまり、「プロジェクトフォルダの中では作業でき、ホームのほかの場所は触れない」という、最小権限に近い状態から始まります。

手順4:設定を変更する(/sandbox config)

/sandbox または /sandbox config で、対話型の設定画面が開きます。タブは General、Credentials、Filesystem、Network の4つで、Tab キーで切り替え、Esc で保存して閉じます。

General タブ

設定内容
Enable sandboxサンドボックスの有効化
Allow sandbox bypass個別コマンドをサンドボックス外で実行する許可を、承認付きで求めることを許可する(既定ON)
Sandbox MCP serversローカルMCPサーバーをサンドボックス内で動かす(既定ON)
Sandbox LSP servers言語サーバーをサンドボックス内で動かす(既定ON)

Filesystem タブ:パスを制限する

追加のパスルールは、User-configured paths で A キーを押して追加します。絶対パスを入力し、Read/Write、Read-Only、Denied から権限を選びます。

  • ディレクトリを追加すると、その配下すべてが対象になります(ワイルドカードは非対応)
  • Denied は、より広い親フォルダに読み書き権限があっても優先して拒否されます
  • Include working directory をオフにすると、.git ディレクトリへのアクセスも外れ、git status や git commit が失敗するため注意が必要です

Network タブ:通信を制限する

設定既定内容
Allow outbound connectionsONインターネットへの外向き通信を許可する
Allow local networkOFFローカルネットワークや開発サーバーへの接続
Host rulesなしホスト名の許可(Allow)・拒否(Deny)を個別に指定
Remote proxyなしHTTPプロキシ経由にする

ホストルールの注意点は次のとおりです。

  • Deny は Allow より優先されます
  • Allow ルールを1件でも追加すると、一致しないホストはブロックされます
  • example.com を拒否すると api.example.com も拒否されます

Credentials タブ:認証情報を制御する

Git と gh の認証を、不要なら無効化できます。無効化すると、サンドボックス内からの git push や gh pr create が失敗することがあります。

APIトークンなどの環境変数も、プレースホルダーに置き換える「マスク」ができます。個人設定の settings.json に直接書く場合は、次のようになります。

{
  "sandbox": {
    "enabled": true,
    "credentials": {
      "envVars": {
        "EXAMPLE_API_TOKEN": {
          "injectHosts": ["api.example.com"]
        }
      }
    }
  }
}

公式ドキュメントの注意点は次のとおりです。

  • settings.json に保存されるのは変数名と宛先ホストだけで、秘密の値そのものは保存されない
  • マスクの有効化にはサンドボックスが有効である必要がある
  • マスク対象にした変数を --secret-env-vars に指定してはいけない(変数が削除され、プレースホルダーにならない)
  • ファイル内の資格情報や、マスク対象外の環境変数は保護されない

手順5:1回のセッションだけサンドボックスを使う

常時有効にせず、特定の実行だけ制限したい場合は、--sandbox オプションを使います。

copilot --sandbox -p "PROMPT"

すでに有効化している場合に、1回だけ外すには --no-sandbox を使います。ただし、管理者がサンドボックスを必須にしている場合は、--no-sandbox では解除できません。

Copilot アプリ・VS Code での設定の違い

3つの実行環境で、設定方法が異なります。設定は互いに共有されません(CLI で有効化してもアプリは変わりません)。

項目Copilot CLICopilot アプリVS Code(Agent Host)
有効化/sandbox enable/sandbox on(セッション単位)、または Settings の Projects で Sandbox new sessions をオン"chat.agent.sandbox.enabled": "on" を設定して新規セッションを開始
無効化/sandbox disable/sandbox off設定を off にする
設定画面/sandbox でタブ式UIプロジェクト設定設定JSON(chat.agent.sandbox.*)
既定オフオフ(管理者が必須にしている場合を除く)オフ

VS Code の主な設定

VS Code では、settings.json に次のような設定を書きます。

{
  "chat.agent.sandbox.enabled": "on",
  "chat.agent.sandbox.network.allowNetwork": true,
  "chat.agent.sandbox.network.allowedDomains": ["api.github.com"],
  "chat.agent.sandbox.fileSystem.userConfiguredPaths": {
    "readwritePaths": ["/path/to/build-output"],
    "readonlyPaths": ["/path/to/shared-source"],
    "deniedPaths": ["/path/to/sensitive-data"]
  }
}

VS Code では、チャット入力で /sandbox policy を実行すると、実効ポリシーが sandbox-policy.md として開きます。

> 重要:VS Code の公式ドキュメントでも、chat.agent.sandbox.network.allowNetwork の既定は true です。サンドボックスを有効にしても、アウトバウンド通信は自動では遮断されません。

> 補足:Windows でネットワークのホスト名制限や認証情報マスクを使う場合、VS Code の Agent Host サンドボックスではホスト側のローカルリスナーへ接続するため、chat.agent.sandbox.network.allowLocalNetwork が必要になる構成があります。これはローカルネットワークへのアクセス範囲も広げる設定なので、必要性を確認してから有効化してください。

また、VS Code ではサンドボックスと承認(Approvals)は独立した仕組みです。Allow all を選んでも、有効なサンドボックスはターミナルのファイルとネットワークのアクセスを引き続き制限します。

サンドボックスの対象外になるもの

公式ドキュメントに記載されている、対象外または制約のある項目です。

  • Copilot CLI 内蔵のファイル読み取り・編集ツールは、サンドボックスの子プロセスではなくCLI自身の一部として動きます。同じポリシーをソフトウェアでチェックしますが、OSによる強制ではありません
  • リモートMCPサーバーは自分のマシンの外で動くため、ファイルシステムのポリシーでは制限できません(Sandbox MCP servers が有効な場合、CLIからの接続はネットワークポリシーで制限可能)
  • VS Code では、組み込みツールなどプロセスを起動しない操作は、サンドボックスではなく独自の権限チェックを使います

うまくいかない場合の確認ポイント

コマンドがサンドボックスにブロックされた

公式ドキュメントの手順を要約すると、次のとおりです。

  1. /sandbox status で、現在のセッションでサンドボックスが有効かを確認する
  2. /sandbox policy(必要ならコマンド付き)で、実効ポリシーを確認する
  3. 必要なアクセスだけを /sandbox config で許可する。/add-dir ではサンドボックスのアクセスは付与されません
  4. 管理者設定が原因なら、管理者に相談する
  5. 一度限りのバイパス提案が出たら、広いアクセスを許容できるときだけ承認する

承認して実行したコマンドは、認証情報のマスクとサンドボックスのプロキシがスキップされ、通常の環境変数(秘密の値を含む可能性あり)で動きます。

存在しないパスをブロックしたらディレクトリができた

ブロック対象のパスが存在しない場合、CLI はそこにディレクトリを作成してからコマンドを起動します(自動では削除されません)。たとえば .env ファイルがまだ存在しない状態でブロックすると、.env という名前のディレクトリが作られます。ファイルをブロックしたい場合は、先にサンドボックス外でそのファイルを作成してください。

Windows の PowerShell で Git が失敗する

必要な更新が適用されていない Windows では、サンドボックス内の PowerShell が C:\ などのドライブルートをカレントディレクトリとして報告することがあります。2026年9月以降の更新プログラムを適用してください。すぐに更新できない場合は、絶対パスを指定する方法が公式に紹介されています。

git -C "C:\PATH\TO\REPOSITORY" status

証明書や認証のエラーが出る

認証情報のマスクが有効な場合、CLI はローカルプロキシ経由で実際の認証情報を差し込みます。一部のツールは、CLI が渡す一時的な証明書バンドルを使わず、証明書エラーを出すことがあります。macOS と Windows では、/sandbox ca create のあとに /sandbox ca trust を実行して、プロキシの認証局をOSの信頼ストアに追加できます。ただし、この操作はCLI以外のアプリケーションの証明書信頼も変更します。HTTP/2 が必須のツールや証明書ピンニングを使うツールは、これでも失敗する可能性があります。

元に戻す方法

Copilot CLI でサンドボックスを無効に戻すには、次を実行します。

/sandbox disable

設定は sandbox.enabled に保存されるため、今後のセッションでもオフになります。管理者設定でサンドボックスが必須になっている場合は、ポリシーでバイパスが許可されているときに限り、現在のセッションだけで無効化できます。

よくある質問

ローカルサンドボックスは有料ですか?

公式Changelogでは、ローカルサンドボックスは追加費用なしで Copilot に含まれると記載されています。なお、クラウドサンドボックスは使用量課金で、組織の設定で既定では無効と記載されており、別の機能です。

有効にすれば、承認ダイアログはいらなくなりますか?

いいえ。サンドボックスと承認は別の防御層です。サンドボックスは、承認済みのコマンドであっても、アクセスできる範囲を制限します。VS Code の公式ドキュメントでも、両者は独立した仕組みとして説明されています。

会社のPCで有効化できない場合は?

Copilot ライセンスを Enterprise から受けている場合、サンドボックスの一部または全部が管理者設定で制御されることがあります。設定画面では (managed) と表示され、変更できません。管理者に相談してください。

Docker や Dev Container の代わりになりますか?

公式ドキュメントでは、ローカルサンドボックスは仮想マシンやユーザーアカウントの境界ではないと説明されています。VS Code のドキュメントでも、クラウドセッションや Dev Container が提供する隔離を置き換えるものではないと記載があります。要件に応じて使い分けてください。

まとめ

  • ローカルサンドボックスは2026年10月7日に GA。Copilot CLI、Copilot アプリ、Agent Host を使う VS Code セッションで、追加費用なしで使えます
  • 既定ではオフです。Copilot CLI では /sandbox enable で有効化し、/sandbox status と /sandbox policy で確認します
  • 既定の設定は、カレントディレクトリへの書き込みと外向き通信を許可する構成です。通信やパスを絞りたい場合は /sandbox config で設定します
  • VM ではなく軽量な隔離です。設定次第で隔離は弱まるため、必要なアクセスだけを許可してください
  • CLI、アプリ、VS Code の設定は互いに共有されないので、使っている環境ごとに設定します

エージェントに任せる作業が増えるほど、「何を許可するか」を事前に決めておくことが重要になります。まずは作業用のプロジェクトで有効化して、/sandbox policy の内容を確認することから始めてみてください。

次に読むおすすめ記事

生成AIの最新モデル比較やAIエージェント(Antigravity/Codex)、コーディング支援ツールの活用法を体系的に学びたい方は、以下の完全ガイドもあわせて参考にしてください。

【完全版】エンジニアのための生成AI・AIエージェント活用ガイド
2023年に始まった生成AIの爆発的な普及から数年が経過し、エンジニアやITビジネスパーソンにおけるAIの活用フェーズは「単なるチャットでの質問(Q&A)」から「自律型AIエージェントによる業務・開発の自動化」へと完全に移行しました。現在で…

参考情報