openclaw secrets
管理 SecretRefs,並維持作用中執行階段快照的健康狀態。
| 命令 | 角色 |
|---|---|
reload | 閘道 RPC (secrets.reload):重新解析 refs,且只有在完全成功時才替換執行階段快照(不寫入設定) |
audit | 對 config/auth/generated-model 儲存區與舊版殘留進行唯讀掃描,檢查明文、未解析 refs 與優先順序漂移(除非使用 --allow-exec,否則會略過 exec refs) |
configure | 用於提供者設定、目標對應與預檢的互動式規劃工具(需要 TTY) |
apply | 執行已儲存的計畫(--dry-run 僅驗證,且預設略過 exec 檢查;寫入模式會拒絕包含 exec 的計畫,除非使用 --allow-exec),接著清除目標明文殘留 |
exec SecretRefs/提供者,請在 dry-run 與寫入 apply 命令兩者都傳入 --allow-exec。
CI/閘門的結束代碼:
audit --check在有發現項目時回傳1。- 未解析的 refs 會回傳
2(無論是否使用--check)。
重新載入執行階段快照
secrets.reload。如果解析失敗,閘道會保留最後已知良好的快照並回傳錯誤(不會部分啟用)。JSON 回應包含 warningCount。
選項:--url <url>、--token <token>、--timeout <ms>、--json。
稽核
掃描 OpenClaw 狀態中的:- 明文密鑰儲存
- 未解析 refs
- 優先順序漂移(
auth-profiles.json憑證遮蔽openclaw.jsonrefs) - 產生的
agents/*/agent/models.json殘留(提供者apiKey值與敏感的提供者標頭) - 舊版殘留(舊版 auth 儲存區項目、OAuth 提醒)
authorization、x-api-key、token、secret、password、credential)。
status:clean | findings | unresolvedresolution:refsChecked、skippedExecRefs、resolvabilityCompletesummary:plaintextCount、unresolvedRefCount、shadowedRefCount、legacyResidueCount- 發現項目代碼:
PLAINTEXT_FOUND、REF_UNRESOLVED、REF_SHADOWED、LEGACY_RESIDUE
設定(互動式輔助工具)
以互動方式建立提供者與 SecretRef 變更、執行預檢,並可選擇套用:secrets.providers aliases),接著進行憑證對應(選取欄位,指派 {source, provider, id} refs),然後預檢並可選擇套用。
旗標:
--providers-only:只設定secrets.providers,略過憑證對應--skip-provider-setup:略過提供者設定,將憑證對應到現有提供者--agent <id>:將auth-profiles.json目標探索與寫入限定到單一 agent 儲存區--allow-exec:允許在預檢/套用期間進行 exec SecretRef 檢查(可能會執行提供者命令)
--providers-only 與 --skip-provider-setup 不能合併使用。
注意事項:
- 需要互動式 TTY。
- 目標是
openclaw.json中含有密鑰的欄位,加上所選 agent 範圍的auth-profiles.json;標準支援介面:SecretRef 憑證介面。 - 支援在挑選流程中直接建立新的
auth-profiles.json對應。 - 套用前會執行預檢解析。
- 產生的計畫預設啟用清除選項(
scrubEnv、scrubAuthProfilesForProviderTargets、scrubLegacyAuthJson)。對已清除的明文值而言,套用是單向操作。 - 若未使用
--apply,命令列介面在預檢後仍會提示Apply this plan now?。 - 使用
--apply(且未使用--yes)時,命令列介面會額外提示不可逆遷移確認。 --json會列印計畫與預檢報告,但仍需要互動式 TTY。
Exec 提供者安全性
Homebrew 安裝通常會在/opt/homebrew/bin/* 下暴露符號連結的二進位檔。只有在受信任套件管理器路徑需要時,才設定 allowSymlinkCommand: true,並搭配 trustedDirs(例如 ["/opt/homebrew"])。在 Windows 上,如果提供者路徑無法使用 ACL 驗證,OpenClaw 會預設失敗關閉;僅針對受信任路徑,在該提供者上設定 allowInsecurePath: true 以略過路徑安全性檢查。
套用已儲存的計畫
--dry-run 會在不寫入檔案的情況下驗證預檢;dry-run 中預設會略過 exec SecretRef 檢查。寫入模式會拒絕包含 exec SecretRefs/提供者的計畫,除非使用 --allow-exec。使用 --allow-exec 可在任一模式中選擇加入 exec 提供者檢查/執行。
apply 可能更新的內容:
openclaw.json(SecretRef 目標 + 提供者 upserts/deletes)auth-profiles.json(提供者目標清除)- 舊版
auth.json殘留 ~/.openclaw/.env中已遷移其值的已知密鑰鍵
為什麼沒有復原備份
secrets apply 有意不寫入包含舊明文值的復原備份。安全性來自嚴格預檢加上近似原子的套用,並在失敗時盡力進行記憶體內還原。
範例
audit --check 仍回報明文發現項目,請更新剩餘回報的目標路徑,並重新執行 audit。