觀點 · 資訊分享

Claude Code 2.1.187:沙盒新增 credentials 設定,可擋下指令讀取金鑰檔與機密環境變數

Claude Code 2.1.187 新增 sandbox.credentials 設定:在沙盒裡執行的指令,可以被禁止讀取你列出的憑證檔案與機密環境變數。同版還修正遠端 MCP 工具無回應時一直卡住的問題。

發布
2026-06-24
篇幅
約 4 分鐘 · 1,659 字
結構
6 節 + 4 題常見問題
標籤
#Claude Code#沙盒#MCP#AI 開發工具
Claude Code 2.1.187:沙盒新增 credentials 設定,可擋下指令讀取金鑰檔與機密環境變數

一句話看懂:Claude Code 2.1.187 新增 sandbox.credentials 設定,可以禁止沙盒內的指令讀取你列出的金鑰檔案與機密環境變數,同版也修好遠端 MCP 工具卡住不動的問題。

Claude Code 沙盒新增憑證防護資訊圖卡:沙盒內的指令,可被禁止讀取金鑰檔與機密環境變數

先用白話講:為什麼要保護金鑰?

想像你請一位水電工來家裡修水管。你相信他會好好修水管,但不想讓他順便翻你的抽屜,那裡放著存摺和保險箱鑰匙。最好的做法不是「相信他不會翻」,而是把抽屜鎖起來。

Claude Code 在你的電腦上執行指令時,那些指令跟你自己開的終端機一樣,可能讀得到 ~/.aws/credentials 這類檔案,或環境變數裡的 GITHUB_TOKEN。沙盒(sandbox) 是限制這些指令的範圍,這次新增的 sandbox.credentials 就是「鎖抽屜」的設定。

發生什麼事

Claude Code 在 6 月 23 日(UTC)釋出 2.1.187,值得注意的更新:

  • 憑證保護:新增 sandbox.credentials 設定,阻止沙盒內的指令讀取憑證檔案與機密環境變數
  • 組織的模型限制:由組織設定的模型限制,現在也套用在模型選單、--model、/model 與 ANTHROPIC_MODEL,選到被限制的模型時會顯示「受組織設定限制」
  • 遠端 MCP 工具:呼叫若無回應,現在 5 分鐘後會中止並回報錯誤,不再無限期等待(可用 CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT 調整)
  • 安裝 GitHub App:/install-github-app 現在可以只安裝 App,不必設定 GitHub Actions 流程與機密
  • 其他:全螢幕選單支援滑鼠點選、/plugin 會列出久未使用的外掛方便清理、修好貼上韓文與中日文內容變亂碼、清掉被中止代理留下的 git worktree 登記等

給開發者的技術細節

以下取自 Claude Code 文件的現況(頁面在 6 月 23 日之後更新過,欄位與模式可能和當天不同):

{
  "sandbox": {
    "enabled": true,
    "credentials": {
      "files": [
        { "path": "~/.aws/credentials", "mode": "deny" },
        { "path": "~/.ssh", "mode": "deny" }
      ],
      "envVars": [
        { "name": "GITHUB_TOKEN", "mode": "deny" },
        { "name": "NPM_TOKEN", "mode": "deny" }
      ]
    }
  }
}
  • deny 的效果:檔案路徑在沙盒內禁止讀取(與 filesystem.denyRead 相同限制),環境變數則在每次沙盒指令執行前移除
  • 沒有內建清單:只有你列出的檔案與變數會受限制
  • 適用範圍:只影響沙盒內的 Bash 指令;要讓所有子行程都拿不到機密,要另外設定 CLAUDE_CODE_SUBPROCESS_ENV_SCRUB
  • 檔案系統隔離:檔案保護屬於檔案系統層,若關掉檔案系統隔離就不生效,環境變數保護仍然有效
  • mask 模式:文件現況還有「mask」模式,讓指令只看到替身值,由沙盒代理在連到允許的主機時才換成真值。這是版本說明沒提到的後續內容

我的看法

我很喜歡這種「列出來才保護」的設計,雖然要自己列清單有點麻煩,但它逼著你想一次:這台機器上到底有哪些金鑰? 很多人是用到才發現,環境變數、設定檔、SSH 目錄裡躺著一堆高權限憑證。

實務上,我會做的是:先盤點機器上的雲端金鑰與個人存取權杖,把最危險的列進 deny,再用權限規則與最小權限的帳號配合。AI 跑指令的場合,沒有單一設定能保證安全,但每多一層就少一點風險,尤其是還沒開自動模式時,更該把「看得到什麼」先收緊。

名詞小辭典

  • 沙盒(Sandbox):把程式限制在受控範圍內執行,避免它碰到不該碰的檔案或網路。
  • 環境變數:作業系統提供給程式的一組設定值,常被用來放金鑰與權杖。
  • MCP:讓 AI 連接外部工具與資料的通用協定。
  • 憑證(Credential):證明身分或授權的東西,例如金鑰檔、存取權杖、密碼。

資料來源

常見問題

Claude Code 的沙盒是什麼?
一種讓 Claude Code 在受限環境下執行指令的機制,可以限制它能讀寫的檔案與能連的網路。這次的更新,是替沙盒多加一個「憑證保護」的設定。
sandbox.credentials 怎麼設定?
在設定檔的 sandbox 區塊底下加入 credentials,分成 files(檔案路徑)與 envVars(環境變數)兩種清單,每項再指定模式。下方技術細節有範例。範例來自我讀到的文件現況,欄位日後可能調整。
設定了就完全安全嗎?
不是。它只保護你列出的項目,也只對沙盒內的 Bash 指令生效。如果關掉檔案系統隔離,檔案保護就不會生效(環境變數保護仍會)。它不是唯一的防線。
MCP 工具卡住的修正是怎麼回事?
版本說明寫的是:遠端 MCP 工具呼叫若在 5 分鐘內都沒有回應,現在會中止並顯示錯誤,不再無限期卡住;可用環境變數 CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT 覆寫。
LINE