メインコンテンツへスキップ
Claude Code を分離することで、セッションがホスト上で読み取り、書き込み、ネットワークにアクセスできる内容を制限します。これは、Claude に権限プロンプトを少なくして作業させたり、無人で実行したり、完全に信頼していないコードを指定したりする場合に最も重要です。 Claude Code は、軽量なコマンド単位のサンドボックスから完全に独立した仮想マシンまで、複数の種類の分離環境で実行できます。このページでは、それらを分離内容と必要な要件で比較し、脅威モデルに合ったものを選択するのに役立ち、組織全体でその選択を強制する方法を示します。
より広いセキュリティモデルについては、セキュリティを参照してください。Agent SDK デプロイメントについては、セキュアなデプロイメントを参照してください。

サンドボックス化アプローチの比較

以下の表の最初の 2 つのアプローチはコンテナなしでホストオペレーティングシステム上で実行されます。残りは Claude Code をコンテナまたは仮想マシン内に配置します。 サンドボックス化された Bash ツールは Claude Code に組み込まれており、Bash コマンドのみを制限します。組み込みファイルツール、MCP サーバー、hooks はホスト上で直接実行されます。表内の他のすべてのアプローチは、Claude Code プロセス全体を分離境界内に配置するため、ファイルツール、MCP サーバー、hooks も制限されます。
サンドボックス分離はセキュリティ侵害の影響を軽減しますが、リスクを完全に排除することはできません。ネットワーク出力を許可するアプローチは、エージェントが読み取ることができるデータをリークする可能性があり、プロジェクトディレクトリを書き込み可能にマウントするアプローチはそのコードを変更する可能性があります。ハード制御としてサンドボックスに依存する前に、セキュリティの制限事項を確認してください。分離はモデルに送信される内容を変更しません。プロンプトと Claude が読み取るファイルは、サンドボックスの有無にかかわらず、Anthropic API または設定されたプロバイダーに送信されます。Claude Code が送信する内容と削減方法については、データ使用を参照してください。

アプローチを選択する

目標を以下の行と照合してから、その後に続く詳細セクションを読んでください。

分離が権限モードとどのように関連するか

権限モードは、ツール呼び出しが実行されるかどうか、および最初にプロンプトが表示されるかどうかを決定します。分離は、コマンドが実行されたら何にアクセスできるかを制限します。この 2 つは連携して機能します。権限モードがアクションを確認なしで実行させる場合、分離境界はそれらのアクションが到達できる内容を制限します。 --dangerously-skip-permissions を渡すと、Claude は最初にあなたに尋ねることなく行動します。明示的な ask ルール、コネクタツール 組織が ask に設定したもの、MCP ツール requiresUserInteraction でマークされたもの、および / またはホームディレクトリをターゲットにした削除に対してのみプロンプトが表示されます。間違いをキャッチするプロンプトがないため、選択した分離境界があなたのシステムを保護するものです。常にコンテナ、VM、または サンドボックスランタイム内で --dangerously-skip-permissions セッションを実行してください。ファイルツール、MCP サーバー、hooks も境界内にあります。 自動モードはプロンプトを、アクションをレビューして要求を超えてエスカレートするもの、認識されていないインフラストラクチャをターゲットにするもの、または Claude が読み取った敵対的なコンテンツによって駆動されているように見えるものをブロックする分類器に置き換えます。分類器はアクション単位の制御であり、分離境界ではないため、分離境界は無人実行の防御層を追加し、--dangerously-skip-permissions の場合のように必須ではありません。 サンドボックス化された Bash ツール単独では Bash のみを制限するため、どちらのモードでも完全に無人で実行するには不十分です。アプローチを重ねることができます。サンドボックス化された Bash ツールをコンテナまたは VM 内で実行すると、外側の環境境界の上に OS レベルのコマンド制限が得られます。Bash サンドボックス自体が権限ルールおよび権限モードとどのように相互作用するかについては、サンドボックス化が権限および権限モードとどのように関連するかを参照してください。

サンドボックス化された Bash ツール

このオプションはネイティブ Windows をサポートしていません。Windows ホストでは、WSL2 または以下のコンテナまたは VM アプローチのいずれかを使用してください。
サンドボックス化された Bash ツールは Claude Code に組み込まれています。オペレーティングシステムプリミティブを使用して、Claude が実行するすべての Bash コマンドのファイルシステムとネットワークアクセスを制限します。Seatbelt(macOS の組み込みサンドボックス)と Linux および WSL2 の bubblewrap を使用します。デフォルトでは、作業ディレクトリへの書き込みを許可し、コマンドが新しいネットワークドメインを必要とする最初の時点でプロンプトを表示します。 /sandbox コマンドで有効にします。サンドボックス化ガイドでは、承認モード、デフォルト境界、および拡大または縮小する方法について説明しています。 コマンド単位のサンドボックスはセッションで実行されるすべてをカバーしていません。
  • Read、Edit、WebFetch などの他の 組み込みツールは Claude Code プロセス内で実行され、任意のコードを生成しません。権限ルールがパスまたはドメインでそれらをゲートします。
  • MCPサーバーと hooks は、ホスト上で制約なく実行される別のプロセスです。
組み込みツール、MCP サーバー、hooks をすべて 1 つの OS 境界の背後に配置するには、Claude Code プロセス全体を サンドボックスランタイムdev コンテナ、または カスタムコンテナ内で実行してください。

サンドボックスランタイム

@anthropic-ai/sandbox-runtime パッケージは、組み込みの Bash サンドボックスが使用するのと同じ Seatbelt または bubblewrap 分離でプロセス全体をラップします。Claude Code をそれを通して実行すると、Bash だけでなく、セッション内のすべてのツール、hook、MCP サーバーが制限されます。ランタイムはベータ研究プレビューであり、パッケージが進化するにつれて設定形式が変わる可能性があります。 ランタイムはデフォルトですべての書き込みとネットワークアクセスを拒否するため、Claude Code を起動する前に設定してください。~/.srt-settings.json または --settings で渡すファイルで、少なくともプロジェクトディレクトリと Claude Code の設定パス ~/.claude および ~/.claude.json への書き込みアクセスを許可します。セッションが必要とするネットワークドメイン(api.anthropic.com または設定されたプロバイダーのエンドポイントを含む)を許可します。完全な設定スキーマについては、パッケージ README を参照してください。 設定ファイルが配置されたら、npx で Claude Code を起動し、ラップするコマンドとして claude を渡します。
Claude Code はサンドボックス内で起動し、設定したファイルシステムとネットワーク境界があります。同じコマンドは、スタンドアロン MCP サーバーまたは他のヘルパープロセスのサンドボックス化に機能します。

Dev コンテナ

Dev コンテナは Claude Code を Docker コンテナ内で実行します。VS Code または互換性のあるエディターが管理し、プロジェクトがマウントされます。リポジトリの .devcontainer/ ディレクトリで独自に定義できます。 claude-code リポジトリは、デフォルト拒否 iptables ファイアウォールを備えた example dev container を出発点として公開しています。リポジトリにコピーし、ファイアウォール許可リスト、ベースイメージ、ピン留めされた Claude Code バージョンを環境に合わせて調整します。ファイアウォールが未承認の出力をブロックするため、このような設定は無人作業のために --dangerously-skip-permissions で Claude Code を実行することをサポートしています。

カスタムコンテナ

Claude Code は、独自のネットワークポリシー、マウントされたボリューム、seccomp プロファイルを備えた任意の Docker または OCI コンテナイメージで実行できます。これは、既存のコンテナインフラストラクチャまたは CI ランナーを持つ組織にとって最も一般的なパスです。 複数のマネージドサンドボックスおよびリモート実行サービスがコンテナをホストできます。操作するコンテナと同じチェックリストが適用されます。書き込み可能にマウントされているもの、その内部で到達可能な認証情報とトークン、ネットワーク出力ポリシーが許可するものを確認します。 コマンド単位の制限のためにコンテナ内に組み込みの Bash サンドボックスを重ねることができます。特権のないコンテナには、サンドボックス化のトラブルシューティングで説明されている nested-sandbox 設定が必要です。

仮想マシン

専用の仮想マシンは、独自のカーネルと、クラウドまたは microVM デプロイメントでは独自の仮想化ハードウェアを備えた最強の分離を提供します。オプションには、クラウドインスタンス、ローカルハイパーバイザー、Firecracker などの microVM が含まれます。 信頼できないコードを評価する場合、セキュリティポリシーがエージェントとホスト間のカーネルレベルの分離を要求する場合、またはホストレベルのアプローチがコンプライアンス要件を満たさない場合に、このアプローチを使用します。Docker Desktop の sandboxes feature は、独自の Docker デーモンとワークスペース同期を備えた microVM を提供し、Docker Desktop が既にインストールされているホストで Claude Code を実行できます。

Web 上の Claude Code

Web 上の Claude Codeは、各セッションを分離された Anthropic 管理の仮想マシンで実行します。ネットワークプロキシはデフォルト許可リストを強制し、別のプロキシはサンドボックス内のリポジトリアクセスのためにスコープ付き認証情報を発行しながら、GitHub トークンをサンドボックスの外に保持します。 完全な VM 分離が必要だが、インフラストラクチャを自分でプロビジョニングしたくない場合、またはローカル開発環境がないデバイスからタスクを委任する場合に、このアプローチを使用します。Claude サブスクリプションと接続された GitHub アカウントが必要であり、セッションは GitHub からリポジトリをクローンします。プラン可用性と GitHub 認証オプションについては、Web 上の Claude Codeを参照してください。

組織全体で分離を強制する

個々の開発者は上記のいずれかのアプローチにオプトインできます。組織が強制できるもの、およびどのツールで強制できるかは、アプローチによって異なります。
  • 組み込み Bash サンドボックス:Claude Code が自体で強制する唯一のアプローチ。管理設定を通じて sandbox 設定キーを配信します。MDM で管理されるファイルとして、または Claude.ai の サーバー管理設定を通じて。デプロイするキーと開発者がポリシーを拡大するのを防ぐ方法については、管理設定でサンドボックス化を強制を参照してください。
  • Dev コンテナexample dev containerをリポジトリにコミットして、チーム全体で環境を標準化します。Claude Code がコンテナを要求しないため、これは強制境界ではなく慣例です。開発者が Claude Code をその外で実行できないようにする場合は、組織のデバイス管理またはソフトウェア許可リストツールでそれを強制します。
  • カスタムコンテナと VM:承認されたイメージを通じて Claude Code を配布し、組織のデバイス管理またはソフトウェア許可リストツールを使用して、その外でのインストールを防止します。

関連項目

これらのページでは、上記のアプローチの設定とポリシーの詳細について説明しています。