Claude Code を分離することで、セッションがホスト上で読み取り、書き込み、ネットワークにアクセスできる内容を制限します。これは、Claude に権限プロンプトを少なくして作業させたり、無人で実行したり、完全に信頼していないコードを指定したりする場合に最も重要です。 Claude Code は、軽量なコマンド単位のサンドボックスから完全に独立した仮想マシンまで、複数の種類の分離環境で実行できます。このページでは、以下の方法について説明します。Documentation Index
Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
- 利用可能な分離アプローチを比較します。何を分離するか、何が必要か、セットアップにどの程度の手間がかかるかについて説明します
- 目標と脅威モデルに合ったアプローチを選択します
- 選択したアプローチを開始します。組み込みの Bash サンドボックスから専用の仮想マシンまで
- 組織内のすべての開発者に対して分離を強制します
より広いセキュリティモデルについては、セキュリティを参照してください。Agent SDK デプロイメントについては、セキュアなデプロイメントを参照してください。
サンドボックス化アプローチの比較
以下の表の最初の 2 つのアプローチはコンテナなしでホストオペレーティングシステム上で実行されます。残りは Claude Code をコンテナまたは仮想マシン内に配置します。| アプローチ | 何が分離されるか | Docker が必要 | セットアップの手間 |
|---|---|---|---|
| サンドボックス化された Bash ツール | Bash コマンドとその子プロセス | いいえ | macOS では最小限。Linux と WSL2 では低い |
| サンドボックスランタイム | Claude Code プロセス全体(ファイルツール、MCP サーバー、hooks を含む) | いいえ | 低い |
| Dev コンテナ | 完全な開発環境 | はい | 中程度 |
| カスタムコンテナ | 完全な開発環境 | はい | 中程度から高い |
| 仮想マシン | 完全なオペレーティングシステム | いいえ | 高い |
| Web 上の Claude Code | 完全なオペレーティングシステム(Anthropic がホスト) | いいえ | なし。Claude サブスクリプションと GitHub が必要 |
アプローチを選択する
目標を以下の行と照合してから、その後に続く詳細セクションを読んでください。| 実現したいこと | 開始するもの |
|---|---|
| 自分のマシンでの日常的な作業中に権限プロンプトを減らす | サンドボックス化された Bash ツール(/sandbox で有効化) |
Claude に --dangerously-skip-permissions または自動モードで無人で作業させる | 事前設定された dev コンテナ、任意のコンテナまたは VM、または サンドボックスランタイム |
| Bash だけでなく MCP サーバーと hooks も分離し、Docker なしで実行する | サンドボックスランタイム |
| 信頼できないリポジトリで作業する | 専用の仮想マシン、または Claude サブスクリプションと接続された GitHub アカウントがある場合は Web 上の Claude Code |
| チーム全体でサンドボックス化された環境を標準化する | 事前設定された dev コンテナ(リポジトリにコピー) |
| ローカルセットアップなしのデバイスから Claude Code を使用する | Web 上の Claude Code(Claude サブスクリプションと接続された GitHub アカウントが必要) |
| 組織内のすべての開発者に対して分離を要求する | 組織全体で分離を強制 |
| ネイティブ Windows ホストで作業する | コンテナまたは VM、または WSL2 内で Bash サンドボックスを実行 |
分離が権限モードとどのように関連するか
権限モードは、ツール呼び出しが実行されるかどうか、および最初にプロンプトが表示されるかどうかを決定します。分離は、コマンドが実行されたら何にアクセスできるかを制限します。この 2 つは連携して機能します。権限モードがアクションを確認なしで実行させる場合、分離境界はそれらのアクションが到達できる内容を制限します。--dangerously-skip-permissions はアクション単位のレビューを完全に削除するため、分離境界は Claude ができることを制限する唯一のものです。常にコンテナ、VM、または サンドボックスランタイム内で実行してください。ファイルツール、MCP サーバー、hooks も境界内にあります。
自動モードはプロンプトを、アクションをレビューして要求を超えてエスカレートするもの、認識されていないインフラストラクチャをターゲットにするもの、または Claude が読み取った敵対的なコンテンツによって駆動されているように見えるものをブロックする分類器に置き換えます。分類器はアクション単位の制御であり、分離境界ではないため、分離境界は無人実行の防御層を追加し、--dangerously-skip-permissions の場合のように必須ではありません。
サンドボックス化された Bash ツール単独では Bash のみを制限するため、どちらのモードでも完全に無人で実行するには不十分です。アプローチを重ねることができます。サンドボックス化された Bash ツールをコンテナまたは VM 内で実行すると、外側の環境境界の上に OS レベルのコマンド制限が得られます。Bash サンドボックス自体が権限ルールおよび権限モードとどのように相互作用するかについては、サンドボックス化が権限および権限モードとどのように関連するかを参照してください。
サンドボックス化された Bash ツール
このオプションはネイティブ Windows をサポートしていません。Windows ホストでは、WSL2 または以下のコンテナまたは VM アプローチのいずれかを使用してください。
/sandbox コマンドで有効にします。サンドボックス化ガイドでは、承認モード、デフォルト境界、および拡大または縮小する方法について説明しています。
コマンド単位のサンドボックスはセッションで実行されるすべてをカバーしていません。
- Read、Edit、WebFetch などの他の 組み込みツールは Claude Code プロセス内で実行され、任意のコードを生成しません。権限ルールがパスまたはドメインでそれらをゲートします。
- MCPサーバーと hooks は、ホスト上で制約なく実行される別のプロセスです。
サンドボックスランタイム
@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 を渡します。
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 を配布し、組織のデバイス管理またはソフトウェア許可リストツールを使用して、その外でのインストールを防止します。
関連項目
これらのページでは、上記のアプローチの設定とポリシーの詳細について説明しています。- サンドボックス化:組み込みのサンドボックス化された Bash ツールを設定します
- Dev コンテナ:事前設定された Docker 開発コンテナ
- セキュリティ:完全な Claude Code セキュリティモデル
- セキュアなデプロイメント:Agent SDK アプリケーションの分離ガイダンス
- 設定:管理設定配信を含むすべてのサンドボックス設定キー