隔離 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 沙箱到專用虛擬機
- 在整個組織中強制執行隔離
有關更廣泛的安全模型,請參閱 Security。有關 Agent SDK 部署,請參閱 Secure deployment。
比較沙箱方法
下表中的前兩種方法在主機作業系統上執行,不使用容器。其餘的方法將 Claude Code 放在容器或虛擬機內。| 方法 | 隔離的內容 | 需要 Docker | 設定工作量 |
|---|---|---|---|
| Sandboxed Bash tool | Bash 命令及其子進程 | 否 | macOS 上最少;Linux 和 WSL2 上較少 |
| Sandbox runtime | 整個 Claude Code 進程,包括檔案工具、MCP 伺服器和 hooks | 否 | 較少 |
| Dev container | 完整開發環境 | 是 | 中等 |
| Custom container | 完整開發環境 | 是 | 中等到高 |
| Virtual machine | 完整作業系統 | 否 | 高 |
| Claude Code on the web | 完整作業系統,由 Anthropic 託管 | 否 | 無;需要 Claude 訂閱和 GitHub |
選擇一種方法
將您的目標與下面的一行相匹配,然後閱讀隨後的詳細部分。| 您想要 | 開始使用 |
|---|---|
| 在您自己的機器上減少日常工作中的權限提示 | Sandboxed Bash tool,使用 /sandbox 啟用 |
讓 Claude 使用 --dangerously-skip-permissions 或自動模式無人值守地工作 | 預配置的 dev container、任何容器或虛擬機,或 sandbox runtime |
| 隔離 MCP 伺服器和 hooks 以及 Bash,不使用 Docker | Sandbox runtime |
| 在不受信任的儲存庫上工作 | 專用虛擬機,或如果您有 Claude 訂閱和連接的 GitHub 帳戶,則使用 Claude Code on the web |
| 在整個團隊中標準化沙箱環境 | 預配置的 dev container,複製到您的儲存庫中 |
| 從沒有本地設定的設備使用 Claude Code | Claude Code on the web,需要 Claude 訂閱和連接的 GitHub 帳戶 |
| 要求為組織中的每個開發人員強制執行隔離 | 在整個組織中強制執行隔離 |
| 在原生 Windows 主機上工作 | 容器或虛擬機,或在 WSL2 內執行 Bash 沙箱 |
隔離與權限模式的關係
Permission modes 決定工具呼叫是否執行以及是否首先提示您。隔離限制命令執行後可以存取的內容。兩者協同工作:當權限模式允許操作在不詢問您的情況下執行時,隔離邊界限制這些操作可以到達的內容。--dangerously-skip-permissions 完全移除每個操作的審查,因此隔離邊界是唯一限制 Claude 可以執行的操作的東西。始終在容器、虛擬機或 sandbox runtime 內執行它,以便檔案工具、MCP 伺服器和 hooks 也在邊界內。
Auto mode 用分類器替換提示,該分類器審查操作並阻止超出請求範圍、針對無法識別的基礎設施或似乎由 Claude 讀取的敵對內容驅動的操作。分類器是每個操作的控制,而不是隔離邊界,因此隔離邊界仍然為無人值守的執行添加深度防禦,並且不像 --dangerously-skip-permissions 那樣是必需的。
Sandboxed Bash tool 本身只限制 Bash,因此對於任一模式中的完全無人值守執行都不夠。您可以分層方法:在容器或虛擬機內執行沙箱化 Bash 工具可在外部環境邊界之上為您提供作業系統級命令限制。有關 Bash 沙箱本身如何與權限規則和模式交互的信息,請參閱 How sandboxing relates to permissions and permission modes。
Sandboxed Bash tool
此選項不支援原生 Windows。在 Windows 主機上,使用 WSL2 或下面的容器或虛擬機方法之一。
/sandbox 命令啟用它。Sandboxing 指南涵蓋批准模式、預設邊界以及如何擴大或縮小它。
每個命令沙箱不涵蓋在會話中執行的所有內容:
- 其他 built-in tools(如 Read、Edit 和 WebFetch)在 Claude Code 進程內執行,不會生成任意程式碼。Permission rules 用於路徑或域來控制它們。
- MCP 伺服器和 hooks 是在主機上無約束執行的獨立進程。
Sandbox runtime
@anthropic-ai/sandbox-runtime 套件將整個進程包裝在內建 Bash 沙箱使用的相同 Seatbelt 或 bubblewrap 隔離中。通過它執行 Claude Code 會限制會話中的每個工具、hook 和 MCP 伺服器,而不僅僅是 Bash。該 runtime 是測試版研究預覽,其配置格式可能會隨著套件的發展而改變。
該 runtime 預設拒絕所有寫入和網路存取,因此在通過它啟動 Claude Code 之前配置它。在 ~/.srt-settings.json 中,或您使用 --settings 傳遞的檔案中,至少允許寫入您的專案目錄和 Claude Code 的配置路徑 ~/.claude 和 ~/.claude.json。允許您的會話需要的網路域,包括 api.anthropic.com 或您配置的提供者的端點。有關完整的配置架構,請參閱套件 README。
設定檔就位後,使用 npx 啟動 Claude Code 並傳遞 claude 作為要包裝的命令:
Dev containers
Dev container 在 VS Code 或相容編輯器管理的 Docker 容器內執行 Claude Code,您的專案掛載在其中。您可以在您的儲存庫中使用.devcontainer/ 目錄定義您自己的。
claude-code 儲存庫發佈了一個 example dev container,其中包含預設拒絕 iptables 防火牆作為起點。將其複製到您的儲存庫中,並調整防火牆允許清單、基礎映像和固定的 Claude Code 版本以適應您的環境。因為防火牆阻止未批准的出站流量,像這樣的配置支援使用 --dangerously-skip-permissions 執行 Claude Code 進行無人值守工作。
Custom container
您可以在任何 Docker 或 OCI 容器映像中執行 Claude Code,具有您自己的網路策略、掛載的卷和 seccomp 設定檔。這是具有現有容器基礎設施或 CI 執行器的組織最常見的路徑。 多個託管沙箱和遠端執行服務可以為您託管容器。與您操作的任何容器相同的檢查清單適用:審查掛載為可寫的內容、容器內可到達的認證和令牌,以及網路出站策略允許的內容。 您可以在容器內分層內建 Bash 沙箱以進行每個命令的限制。無特權容器需要 Sandboxing troubleshooting 中描述的嵌套沙箱設定。Virtual machine
專用虛擬機提供最強的分離,具有自己的核心,在雲或 microVM 部署中,具有自己的虛擬化硬體。選項包括雲實例、本地虛擬機管理程式和 microVM(如 Firecracker)。 當您評估不受信任的程式碼、當您的安全策略要求代理和主機之間的核心級分離,或當沒有主機級方法滿足您的合規要求時,使用此方法。Docker Desktop 的 sandboxes feature 提供了一個具有自己的 Docker daemon 和工作區同步的 microVM,可以在已經有 Docker Desktop 的主機上執行 Claude Code。Claude Code on the web
Claude Code on the web 在隔離的、由 Anthropic 管理的虛擬機中執行每個會話。網路代理強制執行預設允許清單,單獨的代理在沙箱外保持您的 GitHub 令牌,同時在其內部為儲存庫存取發出範圍限定的認證。 當您想要完整的虛擬機隔離而無需自己配置基礎設施,或當您從沒有本地開發環境的設備委派任務時,使用此方法。它需要 Claude 訂閱和連接的 GitHub 帳戶,會話從 GitHub 複製您的儲存庫。有關計劃可用性和 GitHub 身份驗證選項,請參閱 Claude Code on the web。在整個組織中強制執行隔離
個別開發人員可以選擇上述任何方法。組織可以強制執行的內容以及使用哪些工具取決於方法:- Built-in Bash sandbox:唯一 Claude Code 本身強制執行的方法。通過 managed settings 傳遞
sandbox設定金鑰,可以是由您的 MDM 管理的檔案,也可以通過 Claude.ai 上的 server-managed settings。有關要部署的金鑰以及如何防止開發人員擴大策略,請參閱 Enforce sandboxing with managed settings。 - Dev containers:將 example dev container 提交到您的儲存庫以標準化整個團隊的環境。這是一個約定而不是強制邊界,因為 Claude Code 不需要容器。如果開發人員不應該能夠在其外部執行 Claude Code,請使用您組織的設備管理或軟體允許清單工具強制執行。
- Custom containers and VMs:通過批准的映像分發 Claude Code,並使用您組織的設備管理或軟體允許清單工具防止在其外部安裝。
另請參閱
這些頁面涵蓋上述方法的配置和策略詳細資訊。- Sandboxing:配置內建沙箱化 Bash 工具
- Dev container:預配置的 Docker 開發容器
- Security:完整的 Claude Code 安全模型
- Secure deployment:Agent SDK 應用程式的隔離指南
- Settings:所有沙箱配置金鑰,包括託管設定傳遞