メモ
GitHub Copilot用のクラウドサンドボックスとローカル サンドボックスはパブリック プレビューであり、変更される可能性があります。
イントロダクション
Copilot クラウドサンドボックスとローカルサンドボックスは、ローカルとクラウドの両方で、 GitHub Copilot CLI(コマンドラインインターフェース)のセキュリティで保護されたサンドボックスエクスペリエンスを強化する実行プラットフォームです。 Copilotは、ツールの実行、コマンドの実行、ファイルの変更など、ユーザーに代わってより多くのアクションを実行するため、サンドボックス化によって、エージェントワークフローを安全に導入するために必要な分離、移植性、ポリシー制御が提供されます。
サンドボックスは現在、 Copilot CLI (コパイロット CLI) セッションに適用されます。 GitHub Copilot アプリで新しいセッションを開始するときに、クラウド サンドボックスを使用することもできます。 詳細については、「GitHub Copilot アプリ でのエージェント セッションの操作」を参照してください。
サンドボックスを使用すると、 Copilot の実行場所を選択できます。
- ローカル サンドボックス: Copilot を自分のコンピューターで安全に実行します。 Copilot実行されるコマンドは、ファイルシステム、ネットワーク、およびシステムの機能へのアクセスが制限されています。 ローカル サンドボックスは追加料金なしで使用できます。
- クラウド サンドボックス: Copilot CLI (コパイロット CLI) セッション全体を、 GitHubによってホストされる完全に分離された一時的な Linux 環境内でリモートで実行します。 クラウド サンドボックスは使用量に基づいて課金されます。
ローカル サンドボックス
メモ
ローカル サンドボックスは現在、試験段階の機能です。 これを使用するには、Copilot CLI (コパイロット CLI) コマンド ライン オプションで‑‑experimentalを開始するか、セッション中に/experimental onを入力します。
ローカル サンドボックスを使用すると、 Copilot コンピューター上のサンドボックス環境で直接実行でき、ファイルシステム、ネットワーク接続、システム機能へのアクセスが制限されます。
ローカル サンドボックスは既定でオフになっています。 これを有効にするまで、 Copilot 実行されるシェル コマンドは、ユーザー アカウントと同じアクセス権を持つコンピューター上で直接実行されます。ユーザー アカウントは、できる限り読み取り、書き込み、削除を行い、マシンが到達できる任意のネットワークに到達し、制限なく資格情報を使用できます。 ローカル サンドボックスを有効にすると、このアクセスは、ユーザーが制御するポリシーに制限されます。
ローカル サンドボックスのしくみ
ローカル サンドボックスは、Microsoft eXecution Container (MXC) を利用します。これは、各オペレーティング システムで使用可能な分離メカニズムに共通のインターフェイスを提供するクロスプラットフォーム テクノロジです。 Copilot CLI (コパイロット CLI) は、適用するサンドボックス ポリシー (読み取り可能または書き込み可能なパス、ネットワーク アクセスが許可されているかどうかなど) を宣言し、MXC はオペレーティング システムに適した分離バックエンドを使用してそのポリシーを適用します。
分離テクノロジは、完全なハイパーバイザーやコンテナーなどの強力な分離から、OS レベルのプロセスやファイルシステムの封じ込めなどの軽量な分離まで、さまざまな面で存在します。 ローカル サンドボックスは、現在、この範囲の軽量の端に位置しています。プロセスがネットワーク上で読み取り、書き込み、到達できる内容が制限されますが、別の仮想マシンまたはコンテナー内でコマンドは実行されません。 この分離レベルがセキュリティ要件を満たしているかどうかを評価する場合は、実装の詳細については microsoft/mxc リポジトリ を参照してください。
ローカル サンドボックスの有効化
Copilot CLI (コパイロット CLI) セッション内でローカル サンドボックスを有効にするには、次を実行します。
/sandbox enable
/sandbox enable
ローカル サンドボックスを有効にすると、エージェントが代わりに実行するコマンドとツール (シェル コマンド、ファイル検索、および既定では、CLI が起動する MCP および言語 (LSP) サーバー) がオペレーティング システム レベルのサンドボックス内で実行され、システムへのアクセスが制限されます。 CLI は、今後 CLI を使用する場合は常にローカル サンドボックスを使用し続けます。これは、 /sandbox disable を実行して無効にするまで、プログラムや対話型の使用に使用します。
CLI の組み込みファイル ツール ( sed などのシェル コマンドではなく、CLI の一部であるファースト パーティコマンド) は、CLI でインプロセスで実行されます。 CLI 自体はサンドボックス化されていないため、オペレーティング システム サンドボックスでは、これらのツールが実行するファイル操作は表示されず、制約できません。 代わりに、組み込みのツールは、サンドボックス ポリシー自体を確認し、ベスト エフォートベースで構成された設定を尊重するようにコーディングされています。
詳細については、「ローカル サンドボックスの使用」を参照してください。
ローカル サンドボックスの構成
既定のローカル サンドボックス動作を使用することも、アクセスできる Copilot を変更することもできます。 ローカル サンドボックスを構成する場合は、いくつかのディメンションのアクセスを制御できます。
- ファイルシステム: 特定のパスへの読み取り専用または読み取り/書き込みアクセス権、または拒否パスを付与します。
- ネットワーク: 送信インターネット アクセスとローカル ネットワーク アクセスを個別に許可またはブロックします。
- 資格情報: Git と GitHub CLI (
gh) の資格情報をサンドボックス内で使用できるようにするかどうかを選択します。 - サブプロセス: ローカル MCP サーバーと言語サーバーもサンドボックス内で実行するかどうかを選択します。 リモート MCP サーバーはサンドボックス化されません。
- キーチェーン (macOS): サンドボックス内からシステム キーチェーンにアクセスできるかどうかを選択します。
- コマンドごとの例外: より広範なアクセスが必要な場合に、個々のコマンドがサンドボックスの外部で実行されることを許可または禁止します。
詳細については、「ローカル サンドボックス設定の構成」を参照してください。
クロスプラットフォームのサポート
ローカル サンドボックスは、macOS と Linux、および Windows Insider ビルドで使用できます。 サポートと分離の動作は、各オペレーティング システムが異なる分離バックエンドを使用するため、プラットフォームによって異なります。
- macOS は Seatbelt バックエンド (
sandbox-exec) を使用します。 - Linux では、
PATHにbwrapコマンドをインストールして使用できるようにする必要がある、bubblewrap バックエンドを使用します。 サンドボックスが Linux でサポートされていないことを報告/sandbox場合は、bubblewrap をインストールします。 - Windowsは ProcessContainer バックエンドを使用します。
各プラットフォームは異なるバックエンドを使用するため、いくつかのポリシー オプションの動作が異なります。 特に、Windowsサンドボックスでは個々のパスをブロックできないため、追加した拒否パス ルールは無視されます。 Windowsのパスを拒否するのではなく、広範なディレクトリを許可してからその一部を除外するのではなく、Copilot必要な特定のディレクトリにのみアクセス権を付与します。 これにより、拒否されたパスが適用されない場合でも、サンドボックスの範囲から機密性の高い場所が保持されます。 拒否されたパスは、macOS と Linux に適用されます。
エンタープライズ ポリシーの適用
組織や企業の場合、ローカル サンドボックス ポリシーは、Microsoft Intuneやその他の MDM (モバイル デバイス管理) プラットフォームを使用して一元的に構成および適用できます。 これにより、管理者は、マネージド デバイス間でローカル リソース Copilot 対話する方法を制御できます。 MDM で管理される設定の展開を参照してください。
クラウドサンドボックス
クラウド サンドボックスを使用すると、Copilot CLI (コパイロット CLI)によってホストされる完全に分離された一時的な Linux 環境内で、GitHubセッションを実行できます。 各クラウド サンドボックス セッションは、ローカル環境と他のセッションから分離されます。
クラウド サンドボックスは Azure Container Apps Sandboxes を基盤として構築されており、GitHub が ID、ポリシー、および課金のレイヤーを提供します。
メモ
組織を通じて Copilot する場合、クラウド サンドボックスへのアクセスは、組織またはエンタープライズ設定で有効になっているかどうかによって異なります。既定では無効になっています。 詳細については、「組織または企業のクラウド サンドボックスの有効化または無効化」を参照してください。
クラウド サンドボックス セッションの開始
クラウドベースのセッションを開始するには、次のコマンドを実行します。
copilot ‑‑cloud ‑‑experimental
copilot ‑‑cloud ‑‑experimental
メモ
クラウド サンドボックスは現在、試験段階の機能です。 これを使用するには、 Copilot CLI (コパイロット CLI)に対して試験的な機能が有効になっている必要があります。たとえば、CLI セッションの開始時に ‑‑experimental コマンド ライン オプションを使用する場合などです。前述のようにします。
‑‑cloudコマンド ライン オプションは、クラウド サンドボックス内で対話型のCopilot CLI (コパイロット CLI) セッションを起動します。 ローカル セッションと同じように、 Copilot にタスクの実行、シェル コマンドの実行、コードの反復処理を求めることができます。
Copilot実行されるコマンドは、ローカル コンピューターではなくクラウド環境で実行されます。
copilot ‑‑cloudを実行すると、クラウド サンドボックスで 1 つのCopilot CLI (コパイロット CLI) セッションが開始されます。 将来の Copilot セッションには影響しません。 クラウド サンドボックスで新しいセッションを実行するたびに、 ‑‑cloud オプションを使用して CLI を開始する必要があります。
メモ
クラウド サンドボックスは、対話型の Copilot CLI (コパイロット CLI) セッションでのみ使用できます。 クラウド サンドボックスで CLI をプログラムで実行することはできません。つまり、 ‑‑cloud オプションを -p または -i オプションと組み合わせることはできません。
デバイス間でセッションを続行する
クラウド サンドボックス セッションは GitHubホスト型インフラストラクチャで実行されるため、セッションが最初に開始された場所に関係なく、任意のデバイスで Copilot セッションを取得できます。 これにより、ファイルのコピーや依存関係の再インストールを必要とせずに、より柔軟なワークフローが可能になります。
コンピューティング集中型ワークフローをオフロードする
ローカル リソースを使用することなく、クラウドで複数の Copilot タスクを並列で実行できます。 これにより、エージェント駆動型の作業をスケーリングしながら、ローカル環境の軽量で応答性が維持されます。
統一されたガバナンス
クラウド サンドボックス ポリシーは、 Copilot クラウドエージェント ポリシーと同じ構成を共有し、追加のセットアップなしで既存のセキュリティ制御をクラウド サンドボックス実行に拡張します。
セッションのライフサイクル
クラウド サンドボックス セッションには、主に次の 3 つの状態があります。
- アクティブ: セッションが実行中であり、 Copilot CLI (コパイロット CLI)から操作しています。
- 停止済み: セッションは現在実行中ではありませんが、その状態が保存されます。 再開すると、ファイル、環境変数、進行中の作業が復元されます。
- 削除済み: セッションとその保存された状態は削除され、復旧できません。
セッションを停止すると、クラウド サンドボックスによって状態のスナップショットが作成されるため、後で中断した場所を取得できます。 セッションを削除すると、実行中の環境とスナップショットの両方が削除されます。
認証とアクセス
サンドボックスでは、既存の Copilot CLI (コパイロット CLI) 認証が使用されます。 Copilot CLI (コパイロット CLI)にサインインしてCopilotにアクセスできる場合は、サンドボックスを使用できます。 別のクラウド プロバイダーを構成したり、API キーを管理したり、インフラストラクチャを設定したりする必要はありません。
組織またはエンタープライズ所有者は、メンバーが クラウド サンドボックス を使用する前に、組織またはエンタープライズ設定でクラウド サンドボックス アクセス ポリシーを有効にする必要があります。
組織のメンバーのクラウド サンドボックスを有効または無効にする方法については、「 組織または企業のクラウド サンドボックスの有効化または無効化」を参照してください。
Billing
ローカルサンドボックスは、追加料金なしで標準の GitHub Copilot シートに含まれています。
クラウド サンドボックスは使用量に基づいて課金されます。 GitHub は、3 メートルにわたるクラウド サンドボックスの使用状況を測定します。
| Meter | Description | 単位 | 価格 (米国ドル) |
|---|---|---|---|
| Compute | クラウド サンドボックス セッションが実行されている時間。 | 2 番目のコンピューティング | $0.000024 |
| メモリ | 実行中にクラウド サンドボックス セッションに割り当てられたメモリ。 | GiB 秒 | $0.000003 |
| Storage | 停止したセッションのスナップショット ストレージ。 | GiB 月 | $0.005 |
クラウド サンドボックスの使用状況の測定と課金方法の詳細については、「 クラウドサンドボックスとローカルサンドボックスの課金 GitHub Copilot」を参照してください。