なぜディスクとシェルに本番デフォルトが要るか
無人ループと不可信コンテンツ下で workspaceAccess は明示ルートと拒否が必要。シェルは環境継承、読み取りは構造漏えい、書き込みは設定改変と再起動後の残留を招く。最小権限は Unix に加え誰が書くかの方針。緩い JSON はレビューとリリースゲートで止める。
共有ホストではユーザーやルートを分離し、拒否パスとシェル頻度を監視。TLS は リバースプロキシ記事。大きな変更は インストールとロールバック のスナップショットで戻せるようにする。
よくある痛み
1 ゲートウェイユーザー権限過大。 .ssh やクラウド CLI キャッシュが読めるとファイルツールが鍵の出口になる。まずアカウントを縮小する。
2 書き込み可能ワークスペースはサプライチェーンリスク。 package.json やゲートウェイ JSON を書き換えられると永続化が容易。調査用とリリース用を分ける。
3 シェルが高レベル意図を迂回。 パイプや curl 連鎖をログに残し危険コマンドを制限する。
4 MCP とネイティブの見え方が不一致。 子プロセスが広い環境を継承すると隠したパスに届く。変更後はコールド再起動し MCP 記事 を参照。
5 doctor 成功でも実機が漂流。 合成プロンプトで禁止読み取りを試しログの拒否を確認する。
脅威モデル(平易)
ユーザーは秘密を貼る、モデルはリトライで有害行動を試みる、エージェントは不可信ページを読む、という前提で制御を設計する。機密性・完全性・可用性を同じ表で扱う。遠隔入力とローカル動作は連鎖するため SSRF 系の本番記事 とディスク方針は同一プログラムに置く。専用自動化ユーザーと 常駐ヘルス で再起動を予測可能にする。
ワークスペースとコマンド姿勢のマトリクス
| 姿勢 | 強み | 運用コスト | 誤設定時 | 向く場面 |
|---|---|---|---|---|
| workspaceAccess 根を狭める | ファイルツールの爆発半径が明確 | ディレクトリ移動に追随が必要 | 除外過多でビルド失敗 | 単一リポ自動化 |
| 読み取り専用プロファイル | 調査・トリアージが安全 | リリース用別プロファイルが必要 | 書けない不満 | サポート系ボット |
| 環境ごと OS ユーザー分割 | 秘密の分離が最も強い | ユニットと鍵回転が増える | 環境間ドリフト | マルチテナント |
| シェル許可リスト | 想定外パイプを遮断 | ツール追加で更新が必要 | インタプリタ迂回 | 高リスク本番 |
| オンボ用緩いサンドボックス | 学習が速い | 退役手順が必須 | 本番への誤持ち上げ | 使い捨て学習機のみ |
本番デフォルトを一つにし、サンドボックスのみ緩め、四半期で敏感ディレクトリを見直す。
手順と設定例
{
"workspaceAccess": {
"root": "/var/openclaw/work/crm-sync",
"allowReadGlobs": [
"/var/openclaw/work/crm-sync/**",
"/var/openclaw/shared/readme/**"
],
"denyGlobs": [
"**/.ssh/**",
"**/.aws/**",
"**/.config/gcloud/**",
"/var/openclaw/secrets/**"
]
},
"agents": {
"profiles": {
"readonly-triage": { "tools": { "shell": false, "fileWrite": false } },
"release-bot": { "tools": { "shell": "restricted", "fileWrite": true } }
}
}
}
キー名は版により異なる。秘密は環境変数へ。
1〜3 パス棚卸し、ルート縮小、読み取り専用とリリースの分離。4 コールド再起動と openclaw doctor、ゲートウェイ運用 と突合。5〜7 許可読み取り・拒否・承認済み書き込みを再生(ログはマスク)、ロールバックスナップショット、allowAgents で並列を抑えストームを防ぐ。
定量ガードレール
シェル回数・拒否パス・子プロセス/FD・成果物ディスク・ログ保持(二リリース)・再起動時間 SLO・四半期の秘密パターンスキャンをダッシュボード化する。
オンボーディングと本番、doctor の階段
ホスト・ルート・API 鍵を分離し、緩い JSON を顧客本番に貼らない。教育では状態→プロセス→doctor→ログの順を運用と共有する。権限を締めるときはコールド再起動可能な窓で実施し、手順書にシェル可否と読み取り専用境界を書き ヒト介入 へリンクする。推奨読書順:ゲートウェイ doctor、セッション allowAgents、MCP、本文、SSRF、TLS、ロールバック、デーモン。
読む順番: 状態→doctor→セッション→MCP→ワークスペース→TLS。
用語
workspaceAccess はツールが見てよいパスを宣言する。最小権限 は必要最小の権利だけを与える原則。シェルツール は制御されたコマンド実行。読み取り専用プロファイル は書き込みとシェルを止める。コールド再起動 は子を消す完全再起動。doctor は静的整合チェック。allowAgents はセッションごとのツール範囲を抑える。セッションストーム は並列がツール呼び出しを増幅する現象。
FAQ とホスト型 Mac
doctor 成功はワークスペース外が読めない証明か
いいえ。OS 権限・別ユーザー・監査・合成テストが必要。
オンボと本番で同じ OS ユーザーは
非推奨。やむを得ない場合は本番でより厳しい workspaceAccess と別鍵。
MCP はどう最小権限化するか
各サーバーを別境界とみなし、変更後はコールド再起動。MCP 記事を参照。
まとめ: workspaceAccess とコマンド範囲は本番の安全制御。状態・doctor・ログの段を踏む。SFTPMAC ホスト型リモート Mac はゲートウェイとファイル転送の二重運用負荷を下げやすい。
ファイル転送と常時オンゲートウェイの両立なら SFTPMAC を。
