Gateway
Sandbox vs kebijakan alat vs hak akses yang ditingkatkan
OpenClaw memiliki tiga kontrol yang saling terkait tetapi berbeda:
- Sandbox (
agents.defaults.sandbox.*/agents.list[].sandbox.*) menentukan tempat alat dijalankan (backend sandbox atau host). - Kebijakan alat (
tools.*,tools.sandbox.tools.*,agents.list[].tools.*) menentukan alat mana yang tersedia/diizinkan. - Elevated (
tools.elevated.*,agents.list[].tools.elevated.*) adalah jalan keluar khususexecuntuk menjalankan di luar sandbox ketika Anda berada dalam sandbox (gatewaysecara default, ataunodeketika target exec dikonfigurasi sebagainode).
Debug cepat
Gunakan pemeriksa untuk melihat apa yang sebenarnya dilakukan OpenClaw:
openclaw sandbox explainopenclaw sandbox explain --session agent:main:mainopenclaw sandbox explain --agent workopenclaw sandbox explain --jsonPerintah ini menampilkan:
- mode/cakupan/akses ruang kerja sandbox yang efektif
- apakah sesi saat ini berada dalam sandbox (utama atau non-utama)
- aturan izinkan/tolak alat sandbox yang efektif (dan apakah aturan tersebut berasal dari agen/global/default)
- gerbang elevated dan jalur kunci perbaikan
Sandbox: tempat alat dijalankan
Penggunaan sandbox dikontrol oleh agents.defaults.sandbox.mode:
"off": semuanya berjalan pada host."non-main": hanya sesi non-utama yang berada dalam sandbox (hal yang sering "mengejutkan" untuk grup/saluran)."all": semuanya berada dalam sandbox.
agents.defaults.sandbox.workspaceAccess mengontrol apa yang dapat dilihat sandbox: "none", "ro", atau "rw".
Lihat Penggunaan sandbox untuk matriks lengkap (cakupan, pemasangan ruang kerja, citra).
Bind mount (pemeriksaan keamanan cepat)
docker.bindsmenembus sistem berkas sandbox: apa pun yang Anda pasang akan terlihat di dalam kontainer dengan mode yang Anda tetapkan (:roatau:rw).- Mode default adalah baca-tulis jika Anda tidak mencantumkan mode; utamakan
:rountuk sumber/rahasia. scope: "shared"mengabaikan bind per agen (hanya bind global yang berlaku).- OpenClaw memvalidasi sumber bind dua kali: pertama pada jalur sumber yang telah dinormalisasi, lalu sekali lagi setelah menyelesaikannya melalui leluhur terdalam yang ada. Pelolosan melalui induk symlink tidak dapat melewati pemeriksaan jalur yang diblokir atau akar yang diizinkan.
- Jalur daun yang belum ada tetap diperiksa dengan aman. Jika
/workspace/alias-out/new-filediselesaikan melalui induk symlink menuju jalur yang diblokir atau ke luar akar yang dikonfigurasi, bind akan ditolak. - Mengikat
/var/run/docker.socksecara efektif memberikan kendali host kepada sandbox; lakukan ini hanya secara sengaja. - Akses ruang kerja (
workspaceAccess) tidak bergantung pada mode bind.
Kebijakan alat: alat yang tersedia/dapat dipanggil
Dua lapisan berpengaruh:
- Profil alat:
tools.profiledanagents.list[].tools.profile(daftar izin dasar) - Profil alat penyedia:
tools.byProvider[provider].profiledanagents.list[].tools.byProvider[provider].profile - Kebijakan alat global/per agen:
tools.allow/tools.denydanagents.list[].tools.allow/agents.list[].tools.deny - Kebijakan alat penyedia:
tools.byProvider[provider].allow/denydanagents.list[].tools.byProvider[provider].allow/deny - Kebijakan alat sandbox (hanya berlaku saat berada dalam sandbox):
tools.sandbox.tools.allow/tools.sandbox.tools.denydanagents.list[].tools.sandbox.tools.*
Pedoman praktis:
denyselalu diutamakan.- Jika
allowtidak kosong, semua yang lain dianggap diblokir. - Kebijakan alat adalah penghentian mutlak:
/exectidak dapat mengabaikan alatexecyang ditolak. - Kebijakan alat menyaring ketersediaan alat berdasarkan nama; kebijakan ini tidak memeriksa efek samping di dalam
exec. Jikaexecdiizinkan, menolakwrite,edit, atauapply_patchtidak membuat perintah shell menjadi hanya-baca. /exechanya mengubah default sesi untuk pengirim yang berwenang; perintah ini tidak memberikan akses alat.- Kunci alat penyedia menerima
provider(misalnyagoogle-antigravity) atauprovider/model(misalnyaopenai/gpt-5.4). - Log Gateway menyertakan entri audit
agents/tool-policyketika suatu langkah kebijakan alat menghapus alat atau kebijakan alat sandbox memblokir panggilan. Gunakanopenclaw logsuntuk melihat label aturan, kunci konfigurasi, dan nama alat yang terdampak.
Grup alat (singkatan)
Kebijakan alat (global, agen, sandbox) mendukung entri group:* yang diperluas menjadi beberapa alat:
{ tools: { sandbox: { tools: { allow: ["group:runtime", "group:fs", "group:sessions", "group:memory"], }, }, },}Grup yang tersedia:
| Grup | Alat |
|---|---|
group:runtime |
exec, process, code_execution (bash diterima sebagai alias untuk exec) |
group:fs |
read, write, edit, apply_patch |
group:sessions |
sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status |
group:memory |
memory_search, memory_get |
group:web |
web_search, x_search, web_fetch |
group:ui |
browser, canvas |
group:automation |
heartbeat_respond, cron, gateway |
group:messaging |
message |
group:nodes |
nodes, computer |
group:agents |
agents_list, get_goal, create_goal, update_goal, update_plan, skill_workshop |
group:media |
image, image_generate, music_generate, video_generate, tts |
group:openclaw |
sebagian besar alat bawaan OpenClaw (tidak mencakup primitif sistem berkas dan waktu proses read/write/edit/apply_patch/exec/process, canvas, serta plugin penyedia) |
group:plugins |
semua alat milik plugin yang dimuat, termasuk server MCP yang dikonfigurasi dan diekspos melalui bundle-mcp |
Untuk agen hanya-baca, tolak group:runtime serta alat sistem berkas yang dapat mengubah data, kecuali kebijakan sistem berkas sandbox atau batas host terpisah memberlakukan pembatasan hanya-baca.
Untuk server MCP dalam sandbox, kebijakan alat sandbox merupakan gerbang izin kedua. Jika mcp.servers dikonfigurasi tetapi giliran dalam sandbox hanya menampilkan alat bawaan, tambahkan bundle-mcp, group:plugins, atau nama/pola glob alat MCP berawalan server seperti outlook__send_mail atau outlook__* ke tools.sandbox.tools.alsoAllow, lalu mulai ulang/muat ulang Gateway dan ambil kembali daftar alat. Pola glob server menggunakan awalan server MCP yang aman bagi penyedia: karakter selain [A-Za-z0-9_-] menjadi -, nama yang tidak diawali huruf mendapat awalan mcp-, dan awalan yang panjang atau duplikat dapat dipotong atau diberi akhiran.
openclaw doctor saat ini memeriksa bentuk ini untuk server yang dikelola OpenClaw dalam mcp.servers. Server MCP yang dimuat dari manifes plugin bawaan atau .mcp.json Claude menggunakan gerbang sandbox yang sama, tetapi diagnostik ini belum mencantumkan sumber-sumber tersebut; gunakan entri daftar izin yang sama jika alatnya menghilang dalam giliran yang berada dalam sandbox.
Elevated: "jalankan pada host" khusus exec
Elevated tidak memberikan alat tambahan; fitur ini hanya memengaruhi exec.
- Jika Anda berada dalam sandbox,
/elevated on(atauexecdenganelevated: true) berjalan di luar sandbox (persetujuan mungkin tetap berlaku). - Gunakan
/elevated fulluntuk melewati persetujuan exec selama sesi. - Jika Anda sudah berjalan secara langsung, elevated pada dasarnya tidak berpengaruh (tetap dibatasi oleh gerbang).
- Elevated tidak dibatasi berdasarkan skill dan tidak mengabaikan aturan izinkan/tolak alat.
- Elevated tidak memberikan pengabaian lintas-host sewenang-wenang dari
host=auto; fitur ini mengikuti aturan target exec normal dan hanya mempertahankannodeketika target yang dikonfigurasi/target sesi sudah berupanode. /execterpisah dari elevated. Perintah ini hanya menyesuaikan default exec per sesi untuk pengirim yang berwenang.
Gerbang:
- Pengaktifan:
tools.elevated.enabled(dan secara opsionalagents.list[].tools.elevated.enabled) - Daftar izin pengirim:
tools.elevated.allowFrom.<provider>(dan secara opsionalagents.list[].tools.elevated.allowFrom.<provider>)
Lihat Mode Elevated.
Perbaikan umum untuk "penjara sandbox"
"Alat X diblokir oleh kebijakan alat sandbox"
Kunci perbaikan (pilih salah satu):
- Nonaktifkan sandbox:
agents.defaults.sandbox.mode=off(atau per agenagents.list[].sandbox.mode=off) - Izinkan alat di dalam sandbox:
- hapus alat tersebut dari
tools.sandbox.tools.deny(atau per agenagents.list[].tools.sandbox.tools.deny) - atau tambahkan alat tersebut ke
tools.sandbox.tools.allow(atau daftar izin per agen)
- hapus alat tersebut dari
- Periksa
openclaw logsuntuk entriagents/tool-policy. Entri tersebut mencatat mode sandbox dan apakah aturan izinkan atau tolak memblokir alat.
"Saya kira ini sesi utama, mengapa berada dalam sandbox?"
Dalam mode "non-main", kunci grup/saluran bukan utama. Gunakan kunci sesi utama (ditampilkan oleh sandbox explain) atau ubah mode menjadi "off".
Terkait
- Penggunaan sandbox -- referensi lengkap sandbox (mode, cakupan, backend, citra)
- Sandbox & Alat Multi-Agen -- pengabaian per agen dan urutan prioritas
- Mode Elevated