11Claude Code dapat berjalan di beberapa jenis lingkungan terisolasi, mulai dari sandbox per-perintah ringan hingga mesin virtual yang sepenuhnya terpisah. Halaman ini membandingkan mereka berdasarkan apa yang mereka isolasi dan apa yang mereka butuhkan, membantu Anda memilih satu untuk model ancaman Anda, dan menunjukkan cara menegakkan pilihan itu di seluruh organisasi.11Claude Code dapat berjalan di beberapa jenis lingkungan terisolasi, mulai dari sandbox per-perintah ringan hingga mesin virtual yang sepenuhnya terpisah. Halaman ini membandingkan mereka berdasarkan apa yang mereka isolasi dan apa yang mereka butuhkan, membantu Anda memilih satu untuk model ancaman Anda, dan menunjukkan cara menegakkan pilihan itu di seluruh organisasi.
12 12
13<Info>13<Info>
14 Untuk model keamanan yang lebih luas, lihat [Security](/id/security). Untuk penerapan Agent SDK, lihat [Secure deployment](/id/agent-sdk/secure-deployment).14 Untuk model keamanan yang lebih luas, lihat [Security](/docs/id/security). Untuk penerapan Agent SDK, lihat [Secure deployment](/docs/id/agent-sdk/secure-deployment).
15</Info>15</Info>
16 16
17<h2 id="compare-sandboxing-approaches">17<h2 id="compare-sandboxing-approaches">
21Dua pendekatan pertama dalam tabel di bawah berjalan pada sistem operasi host tanpa container. Sisanya menempatkan Claude Code di dalam container atau mesin virtual.21Dua pendekatan pertama dalam tabel di bawah berjalan pada sistem operasi host tanpa container. Sisanya menempatkan Claude Code di dalam container atau mesin virtual.
22 22
23| Pendekatan | Apa yang diisolasi | Memerlukan Docker | Upaya pengaturan |23| Pendekatan | Apa yang diisolasi | Memerlukan Docker | Upaya pengaturan |
24| :------------------------------------------------ | :-------------------------------------------------------------------- | :---------------- | :------------------------------------------------ |24| :------------------------------------------------ | :-------------------------------------------------------------------- | :---------------- | :----------------------------------------------------------------------------------------- |
25| [Sandboxed Bash tool](#sandboxed-bash-tool) | Perintah Bash dan proses anak mereka | Tidak | Minimal di macOS; rendah di Linux dan WSL2 |25| [Sandboxed Bash tool](#sandboxed-bash-tool) | Perintah Bash dan proses anak mereka | Tidak | Minimal di macOS; rendah di Linux dan WSL2 |
26| [Sandbox runtime](#sandbox-runtime) | Seluruh proses Claude Code, termasuk alat file, server MCP, dan hooks | Tidak | Rendah |26| [Sandbox runtime](#sandbox-runtime) | Seluruh proses Claude Code, termasuk alat file, server MCP, dan hooks | Tidak | Rendah |
27| [Dev container](#dev-containers) | Lingkungan pengembangan lengkap | Ya | Sedang |27| [Dev container](#dev-containers) | Lingkungan pengembangan lengkap | Ya | Sedang |
28| [Custom container](#custom-container) | Lingkungan pengembangan lengkap | Ya | Sedang hingga tinggi |28| [Custom container](#custom-container) | Lingkungan pengembangan lengkap | Ya | Sedang hingga tinggi |
29| [Virtual machine](#virtual-machine) | Sistem operasi lengkap | Tidak | Tinggi |29| [Virtual machine](#virtual-machine) | Sistem operasi lengkap | Tidak | Tinggi |
30| [Claude Code on the web](#claude-code-on-the-web) | Sistem operasi lengkap, dihosting oleh Anthropic | Tidak | Tidak ada; memerlukan langganan Claude dan GitHub |30| [Claude Code on the web](#claude-code-on-the-web) | Sistem operasi lengkap, dihosting oleh Anthropic | Tidak | Tidak ada; memerlukan langganan Claude dan GitHub saat Anda meluncurkan dari antarmuka web |
31 31
32[Sandboxed Bash tool](/id/sandboxing) bawaan di Claude Code dan hanya membatasi perintah Bash. Alat file bawaan, server MCP, dan hooks masih berjalan langsung di host Anda. Setiap pendekatan lain dalam tabel menempatkan seluruh proses Claude Code di dalam batas isolasi, sehingga alat file, server MCP, dan hooks juga dibatasi.32[Sandboxed Bash tool](/docs/id/sandboxing) bawaan di Claude Code dan hanya membatasi perintah Bash. Alat file bawaan, server MCP, dan hooks masih berjalan langsung di host Anda. Setiap pendekatan lain dalam tabel menempatkan seluruh proses Claude Code di dalam batas isolasi, sehingga alat file, server MCP, dan hooks juga dibatasi.
33 33
34<Warning>34<Warning>
35 Isolasi sandbox mengurangi dampak pelanggaran, tetapi tidak menghilangkan risiko. Pendekatan apa pun yang memungkinkan egress jaringan masih dapat membocorkan data yang dapat dibaca agen, dan pendekatan apa pun yang memasang direktori proyek Anda yang dapat ditulis masih dapat memodifikasi kode tersebut. Tinjau [batasan keamanan](/id/sandboxing#security-limitations) sebelum mengandalkan sandbox sebagai kontrol keras.35 Isolasi sandbox mengurangi dampak pelanggaran, tetapi tidak menghilangkan risiko. Pendekatan apa pun yang memungkinkan egress jaringan masih dapat membocorkan data yang dapat dibaca agen, dan pendekatan apa pun yang memasang direktori proyek Anda yang dapat ditulis masih dapat memodifikasi kode tersebut. Tinjau [batasan keamanan](/docs/id/sandboxing#security-limitations) sebelum mengandalkan sandbox sebagai kontrol keras.
36 36
37 Isolasi juga tidak mengubah apa yang dikirim ke model. Prompt Anda dan file yang dibaca Claude ditransmisikan ke API Anthropic atau penyedia yang dikonfigurasi dengan atau tanpa sandbox. Lihat [Data usage](/id/data-usage) untuk apa yang dikirim Claude Code dan cara menguranginya.37 Isolasi juga tidak mengubah apa yang dikirim ke model. Prompt Anda dan file yang dibaca Claude ditransmisikan ke API Anthropic atau penyedia yang dikonfigurasi dengan atau tanpa sandbox. Lihat [Data usage](/docs/id/data-usage) untuk apa yang dikirim Claude Code dan cara menguranginya.
38</Warning>38</Warning>
39 39
40<h2 id="choose-an-approach">40<h2 id="choose-an-approach">
44Cocokkan tujuan Anda dengan baris di bawah, kemudian baca bagian detail yang mengikuti.44Cocokkan tujuan Anda dengan baris di bawah, kemudian baca bagian detail yang mengikuti.
45 45
46| Anda ingin | Mulai dengan |46| Anda ingin | Mulai dengan |
47| :------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------- |47| :------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
48| Mengurangi prompt izin selama pekerjaan sehari-hari di mesin Anda sendiri | [Sandboxed Bash tool](/id/sandboxing), diaktifkan dengan `/sandbox` |48| Mengurangi prompt izin selama pekerjaan sehari-hari di mesin Anda sendiri | [Sandboxed Bash tool](/docs/id/sandboxing), dikonfigurasi dengan `/sandbox` |
49| Biarkan Claude bekerja tanpa pengawasan dengan `--dangerously-skip-permissions` atau mode otomatis | [Dev container](/id/devcontainer) yang telah dikonfigurasi sebelumnya, container atau VM apa pun, atau [sandbox runtime](#sandbox-runtime) |49| Biarkan Claude bekerja tanpa pengawasan dengan `--dangerously-skip-permissions` atau mode otomatis | [Dev container](/docs/id/devcontainer) yang telah dikonfigurasi sebelumnya, container atau VM apa pun, atau [sandbox runtime](#sandbox-runtime) |
50| Isolasi server MCP dan hooks serta Bash, tanpa Docker | Runtime sandbox |50| Isolasi server MCP dan hooks serta Bash, tanpa Docker | Runtime sandbox |
51| Bekerja pada repositori yang tidak terpercaya | Mesin virtual khusus, atau [Claude Code on the web](/id/claude-code-on-the-web) jika Anda memiliki langganan Claude dan akun GitHub yang terhubung |51| Bekerja pada repositori yang tidak terpercaya | Mesin virtual khusus, atau [Claude Code on the web](/docs/id/claude-code-on-the-web) jika Anda memiliki langganan Claude; GitHub hanya diperlukan ketika Anda meluncurkan dari antarmuka web |
52| Standardisasi lingkungan bersandbox di seluruh tim | [Dev container](/id/devcontainer) yang telah dikonfigurasi sebelumnya, disalin ke repositori Anda |52| Standardisasi lingkungan bersandbox di seluruh tim | [Dev container](/docs/id/devcontainer) yang telah dikonfigurasi sebelumnya, disalin ke repositori Anda |
53| Gunakan Claude Code dari perangkat tanpa pengaturan lokal | [Claude Code on the web](/id/claude-code-on-the-web), yang memerlukan langganan Claude dan akun GitHub yang terhubung |53| Gunakan Claude Code dari perangkat tanpa pengaturan lokal | [Claude Code on the web](/docs/id/claude-code-on-the-web), yang memerlukan langganan Claude dan akun GitHub yang terhubung |
54| Memerlukan isolasi untuk setiap pengembang di organisasi Anda | [Enforce isolation across an organization](#enforce-isolation-across-an-organization) |54| Memerlukan isolasi untuk setiap pengembang di organisasi Anda | [Enforce isolation across an organization](#enforce-isolation-across-an-organization) |
55| Bekerja pada host Windows asli | Container atau VM, atau jalankan sandbox Bash di dalam WSL2 |55| Bekerja pada host Windows asli | Container atau VM, atau jalankan sandbox Bash di dalam WSL2 |
56 56
58 Bagaimana isolasi berhubungan dengan mode izin58 Bagaimana isolasi berhubungan dengan mode izin
59</h3>59</h3>
60 60
61[Mode izin](/id/permission-modes) memutuskan apakah panggilan alat berjalan dan apakah Anda diminta terlebih dahulu. Isolasi membatasi apa yang dapat diakses perintah setelah berjalan. Keduanya bekerja bersama: ketika mode izin membiarkan tindakan berjalan tanpa bertanya kepada Anda, batas isolasi membatasi apa yang dapat dijangkau tindakan tersebut.61[Mode izin](/docs/id/permission-modes) memutuskan apakah panggilan alat berjalan dan apakah Anda diminta terlebih dahulu. Isolasi membatasi apa yang dapat diakses perintah setelah berjalan. Keduanya bekerja bersama: ketika mode izin membiarkan tindakan berjalan tanpa bertanya kepada Anda, batas isolasi membatasi apa yang dapat dijangkau tindakan tersebut.
62 62
63Ketika Anda melewatkan `--dangerously-skip-permissions`, Claude bertindak tanpa bertanya kepada Anda terlebih dahulu; Anda hanya diminta untuk [aturan ask](/id/permissions#manage-permissions) yang eksplisit, alat konektor [yang organisasi Anda atur ke `ask`](/id/mcp#organization-controls-on-connector-tools), alat MCP yang ditandai [`requiresUserInteraction`](/id/mcp#require-approval-for-a-specific-tool), dan penghapusan yang menargetkan `/` atau direktori home Anda. Tanpa prompt untuk menangkap kesalahan, batas isolasi yang Anda pilih adalah apa yang melindungi sistem Anda. Selalu jalankan sesi `--dangerously-skip-permissions` di dalam container, VM, atau [sandbox runtime](#sandbox-runtime), sehingga alat file, server MCP, dan hooks juga berada di dalam batas.63Ketika Anda melewatkan `--dangerously-skip-permissions`, Claude bertindak tanpa bertanya kepada Anda terlebih dahulu. [Tindakan yang tidak ada mode auto-approve](/docs/id/permission-modes#actions-no-mode-auto-approves) masih berlaku.
64 64
65[Mode otomatis](/id/permission-modes#eliminate-prompts-with-auto-mode) menggantikan prompt dengan pengklasifikasi yang meninjau tindakan dan memblokir yang melampaui permintaan, menargetkan infrastruktur yang tidak dikenali, atau tampak didorong oleh konten bermusuhan yang dibaca Claude. Pengklasifikasi adalah kontrol per-tindakan, bukan batas isolasi, sehingga batas isolasi masih menambah pertahanan berlapis untuk berjalan tanpa pengawasan, dan tidak diperlukan seperti halnya untuk `--dangerously-skip-permissions`.65Tanpa prompt untuk menangkap kesalahan, batas isolasi yang Anda pilih adalah apa yang melindungi sistem Anda. Selalu jalankan sesi `--dangerously-skip-permissions` di dalam container, VM, atau [sandbox runtime](#sandbox-runtime), sehingga alat file, server MCP, dan hooks juga berada di dalam batas. Pada Linux dan macOS, Claude Code menolak untuk memulai dengan flag ini ketika berjalan sebagai root, jadi jalankan container, VM, atau sandbox runtime sebagai pengguna non-root.
66 66
67[Sandboxed Bash tool](#sandboxed-bash-tool) sendiri hanya membatasi Bash, sehingga tidak cukup untuk berjalan sepenuhnya tanpa pengawasan di kedua mode. Anda dapat melapisi pendekatan: menjalankan sandboxed Bash tool di dalam container atau VM memberi Anda pembatasan perintah tingkat OS di atas batas lingkungan luar. Untuk bagaimana sandbox Bash itu sendiri berinteraksi dengan aturan izin dan mode, lihat [How sandboxing relates to permissions and permission modes](/id/sandboxing#how-sandboxing-relates-to-permissions-and-permission-modes).67[Mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) menggantikan prompt dengan pengklasifikasi yang meninjau tindakan. Pengklasifikasi adalah kontrol per-tindakan, bukan batas isolasi, sehingga batas isolasi masih menambah pertahanan berlapis untuk berjalan tanpa pengawasan, dan tidak diperlukan seperti halnya untuk `--dangerously-skip-permissions`.
68
69[Sandboxed Bash tool](#sandboxed-bash-tool) sendiri hanya membatasi Bash, sehingga tidak cukup untuk berjalan sepenuhnya tanpa pengawasan di kedua mode. Anda dapat melapisi pendekatan: menjalankan sandboxed Bash tool di dalam container atau VM memberi Anda pembatasan perintah tingkat OS di atas batas lingkungan luar. Untuk bagaimana sandbox Bash itu sendiri berinteraksi dengan aturan izin dan mode, lihat [How sandboxing relates to permissions and permission modes](/docs/id/sandboxing#how-sandboxing-relates-to-permissions-and-permission-modes).
68 70
69<h2 id="sandboxed-bash-tool">71<h2 id="sandboxed-bash-tool">
70 Sandboxed Bash tool72 Sandboxed Bash tool
74 Opsi ini tidak mendukung Windows asli. Pada host Windows, gunakan WSL2 atau salah satu pendekatan container atau VM di bawah.76 Opsi ini tidak mendukung Windows asli. Pada host Windows, gunakan WSL2 atau salah satu pendekatan container atau VM di bawah.
75</Note>77</Note>
76 78
77Sandboxed Bash tool bawaan di Claude Code. Ini menggunakan primitif sistem operasi untuk membatasi akses filesystem dan jaringan dari setiap perintah Bash yang dijalankan Claude: Seatbelt, sandbox macOS bawaan, dan [bubblewrap](https://github.com/containers/bubblewrap) di Linux dan WSL2. Secara default, ini memungkinkan penulisan ke direktori kerja dan meminta pertama kali perintah memerlukan domain jaringan baru.79Sandboxed Bash tool bawaan di Claude Code. Ini menggunakan primitif sistem operasi untuk membatasi akses filesystem dan jaringan dari setiap perintah Bash yang dijalankan Claude.
78 80
79Aktifkan dengan perintah `/sandbox`. Panduan [Sandboxing](/id/sandboxing) mencakup mode persetujuan, batas default, dan cara memperluas atau mempersempit.81Jalankan perintah `/sandbox` untuk membuka panel sandbox dan pilih mode. Panduan [Sandboxing](/docs/id/sandboxing) mencakup mode persetujuan, batas default, dan cara memperluas atau mempersempit.
80 82
81Sandbox per-perintah tidak mencakup semua yang berjalan dalam sesi:83Sandbox per-perintah tidak mencakup semua yang berjalan dalam sesi:
82 84
83* [Alat bawaan](/id/tools-reference) lainnya seperti Read, Edit, dan WebFetch berjalan di dalam proses Claude Code dan tidak menjalankan kode arbitrer. [Aturan izin](/id/permissions) untuk path atau domain membatasi mereka sebagai gantinya.85* [Alat bawaan](/docs/id/tools-reference) lainnya seperti Read, Edit, dan WebFetch berjalan di dalam proses Claude Code dan tidak menjalankan kode arbitrer. [Aturan izin](/docs/id/permissions) untuk path atau domain membatasi mereka sebagai gantinya.
84* Server [MCP](/id/mcp) dan hooks adalah proses terpisah yang berjalan tanpa batasan pada host.86* Server [MCP](/docs/id/mcp) dan hooks adalah proses terpisah yang berjalan tanpa batasan pada host.
85 87
86Untuk menempatkan alat bawaan, server MCP, dan hooks semua di belakang satu batas OS, jalankan seluruh proses Claude Code di dalam [sandbox runtime](#sandbox-runtime), [dev container](#dev-containers), atau [custom container](#custom-container).88Untuk menempatkan alat bawaan, server MCP, dan hooks semua di belakang satu batas OS, jalankan seluruh proses Claude Code di dalam [sandbox runtime](#sandbox-runtime), [dev container](#dev-containers), atau [custom container](#custom-container).
87 89
89 Sandbox runtime91 Sandbox runtime
90</h2>92</h2>
91 93
92Paket [`@anthropic-ai/sandbox-runtime`](https://github.com/anthropic-experimental/sandbox-runtime) membungkus seluruh proses dalam isolasi Seatbelt atau bubblewrap yang sama yang digunakan sandbox Bash bawaan. Menjalankan Claude Code melaluinya membatasi setiap alat, hook, dan server MCP dalam sesi, bukan hanya Bash. Runtime adalah pratinjau penelitian beta, dan format konfigurasinya mungkin berubah seiring paket berkembang.94Paket [`@anthropic-ai/sandbox-runtime`](https://github.com/anthropic-experimental/sandbox-runtime) membungkus seluruh proses dalam isolasi Seatbelt atau bubblewrap yang sama yang digunakan sandbox Bash bawaan. Menjalankan Claude Code melalui runtime membatasi setiap alat, hook, dan server MCP dalam sesi, bukan hanya Bash. Runtime adalah pratinjau penelitian beta, dan format konfigurasinya mungkin berubah seiring paket berkembang.
95
96Bagian ini mencakup apa yang Anda konfigurasikan dan apa yang diberlakukan runtime sendiri. Untuk menerapkan runtime dalam aplikasi Agent SDK, lihat [panduan penerapan aman](/docs/id/agent-sdk/secure-deployment#sandbox-runtime).
97
98<h3 id="set-up-and-launch-the-runtime">
99 Siapkan dan luncurkan runtime
100</h3>
101
102Di Linux dan WSL2, runtime bergantung pada paket `bubblewrap` dan `socat` yang sama dengan sandbox bawaan, ditambah `ripgrep`, yang Claude Code bundel tetapi runtime mandiri menyelesaikannya dari PATH Anda. Instal `bubblewrap` dan `socat` seperti yang dijelaskan dalam [Siapkan Linux dan WSL2](/docs/id/sandboxing#set-up-linux-and-wsl2), dan `ripgrep` dari manajer paket distribusi Anda. Di macOS Anda tidak memerlukan paket tambahan. Runtime menggunakan sandbox Seatbelt bawaan di sana.
103
104Secara default runtime menolak akses jaringan dan membatasi penulisan ke serangkaian kecil jalur runtime bawaan, jadi konfigurasikan sebelum meluncurkan Claude Code melaluinya. Letakkan konfigurasi Anda di `~/.srt-settings.json`, atau dalam file yang Anda berikan dengan `--settings`. [README](https://github.com/anthropic-experimental/sandbox-runtime) paket mendokumentasikan skema konfigurasi lengkap.
93 105
94Runtime menolak semua akses tulis dan jaringan secara default, jadi konfigurasikan sebelum meluncurkan Claude Code melaluinya. Di `~/.srt-settings.json`, atau file yang Anda berikan dengan `--settings`, izinkan akses tulis ke setidaknya direktori proyek Anda dan jalur konfigurasi Claude Code `~/.claude` dan `~/.claude.json`. Izinkan domain jaringan yang dibutuhkan sesi Anda, termasuk `api.anthropic.com` atau endpoint penyedia yang dikonfigurasi. Lihat [README](https://github.com/anthropic-experimental/sandbox-runtime) paket untuk skema konfigurasi lengkap.106Izinkan akses tulis ke setidaknya:
107
108* Direktori proyek Anda.
109* Jalur konfigurasi Claude Code `~/.claude` dan `~/.claude.json`.
110* `/tmp`, tempat Claude Code menulis file runtime.
111
112Izinkan domain jaringan yang dibutuhkan sesi Anda:
113
114* `api.anthropic.com`, atau endpoint penyedia yang dikonfigurasi. Pada penyedia pihak ketiga, pertahankan `api.anthropic.com` juga: pemeriksaan keamanan domain WebFetch masih memanggilnya secara default kecuali Anda menetapkan `skipWebFetchPreflight: true`.
115* `claude.ai` dan `platform.claude.com`, yang diperlukan [OAuth sign-in dan penyegaran token](/docs/id/network-config#network-access-requirements). Jalankan yang diautentikasi dengan kunci API dapat menghilangkan keduanya.
116
117Di Linux dan WSL2, runtime menerapkan hibah tulis hanya ke jalur yang sudah ada. Dalam lingkungan baru, buat jalur konfigurasi Claude Code sebelum peluncuran pertama:
118
119```bash theme={null}
120mkdir -p ~/.claude && echo '{}' > ~/.claude.json
121```
95 122
96Setelah file pengaturan sudah ada, luncurkan Claude Code dengan `npx` dan berikan `claude` sebagai perintah untuk dibungkus:123Setelah file pengaturan sudah ada, luncurkan Claude Code dengan `npx` dan berikan `claude` sebagai perintah untuk dibungkus:
97 124
101 128
102Claude Code dimulai di dalam sandbox dengan batas filesystem dan jaringan yang Anda konfigurasikan. Perintah yang sama berfungsi untuk sandboxing server MCP mandiri atau proses pembantu lainnya.129Claude Code dimulai di dalam sandbox dengan batas filesystem dan jaringan yang Anda konfigurasikan. Perintah yang sama berfungsi untuk sandboxing server MCP mandiri atau proses pembantu lainnya.
103 130
131<h3 id="what-the-runtime-blocks-on-its-own">
132 Apa yang diblokirkan runtime sendiri
133</h3>
134
135Runtime memblokir penulisan risiko tertinggi tanpa konfigurasi apa pun dari Anda:
136
137* `denyWrite` mengambil alih `allowWrite`.
138* Di akar proyek, runtime menolak `.git/hooks`, menolak `.git/config` kecuali Anda menetapkan `filesystem.allowGitConfig: true`, dan menolak `.mcp.json`, `.claude/commands`, `.claude/agents`, dan file startup shell.
139* Di macOS, penolakan ini diperiksa ketika penulisan terjadi, jadi mereka juga mencakup file bersarang dan repositori yang dibuat selama sesi.
140* Di Linux dan WSL2, runtime membangun daftar penolakan sekali saat peluncuran. Ini secara andal mencakup akar proyek, melakukan pemindaian dangkal upaya terbaik untuk salinan bersarang yang ada pada saat itu, dan tidak mencakup apa pun yang dibuat sesi nanti, seperti `git init`, `git clone`, atau scaffolding. Bagian `mandatoryDenySearchDepth` README menjelaskan semantik pemindaian yang tepat.
141* Tanpa `~/.srt-settings.json` yang valid, runtime tetap dimulai, memblokir akses jaringan, dan membatasi penulisan ke jalur runtime bawaan seperti `/tmp/claude`, `~/.npm/_logs`, dan `~/.claude/debug`. Jangan anggap awal yang bersih sebagai bukti pengaturan Anda dimuat.
142* Ketika Anda melewatkan `--settings`, runtime menolak untuk memulai jika file gagal dimuat.
143
144Hibah tulis Anda masih mencakup jalur lain yang dimuat konfigurasi Claude Code, jadi tolak dengan `denyWrite`. Sesi yang disandbox yang dapat menulisnya dapat mempertahankan hook, aturan izin, atau server MCP yang berjalan tanpa sandbox lain kali Anda meluncurkan Claude Code.
145
146<h3 id="after-unattended-runs">
147 Setelah menjalankan tanpa pengawasan
148</h3>
149
150Tinjau jalur yang Anda pertahankan dapat ditulis. Di Linux dan WSL2, juga tinjau apa pun yang dibuat sesi.
151
104<h2 id="dev-containers">152<h2 id="dev-containers">
105 Dev containers153 Dev containers
106</h2>154</h2>
107 155
108Dev container menjalankan Claude Code di dalam Docker container yang dikelola VS Code atau editor kompatibel, dengan proyek Anda dipasang di dalamnya. Anda dapat menentukan milik Anda sendiri dengan direktori `.devcontainer/` di repositori Anda.156Dev container menjalankan Claude Code di dalam Docker container yang dikelola VS Code atau editor kompatibel, dengan proyek Anda dipasang di dalamnya. Anda dapat menentukan milik Anda sendiri dengan direktori `.devcontainer/` di repositori Anda.
109 157
110Repositori claude-code menerbitkan [contoh dev container](/id/devcontainer) dengan firewall iptables default-deny sebagai titik awal. Salin ke repositori Anda dan sesuaikan daftar allowlist firewall, gambar dasar, dan versi Claude Code yang disematkan agar sesuai dengan lingkungan Anda. Karena firewall memblokir egress yang tidak disetujui, konfigurasi seperti ini mendukung menjalankan Claude Code dengan `--dangerously-skip-permissions` untuk pekerjaan tanpa pengawasan.158Repositori claude-code menerbitkan [contoh dev container](/docs/id/devcontainer) dengan firewall iptables default-deny sebagai titik awal. Salin ke repositori Anda dan sesuaikan daftar allowlist firewall, gambar dasar, dan versi Claude Code yang disematkan agar sesuai dengan lingkungan Anda. Karena firewall memblokir egress yang tidak disetujui, konfigurasi seperti ini mendukung menjalankan Claude Code dengan `--dangerously-skip-permissions` untuk pekerjaan tanpa pengawasan.
111 159
112<h2 id="custom-container">160<h2 id="custom-container">
113 Custom container161 Custom container
117 165
118Beberapa layanan sandbox terkelola dan eksekusi jarak jauh dapat menampung container untuk Anda. Daftar periksa yang sama berlaku seperti untuk container apa pun yang Anda operasikan: tinjau apa yang dipasang dapat ditulis, kredensial dan token apa yang dapat dijangkau di dalamnya, dan apa yang diizinkan kebijakan egress jaringan.166Beberapa layanan sandbox terkelola dan eksekusi jarak jauh dapat menampung container untuk Anda. Daftar periksa yang sama berlaku seperti untuk container apa pun yang Anda operasikan: tinjau apa yang dipasang dapat ditulis, kredensial dan token apa yang dapat dijangkau di dalamnya, dan apa yang diizinkan kebijakan egress jaringan.
119 167
120Anda dapat melapisi sandbox Bash bawaan di dalam container untuk pembatasan per-perintah. Container yang tidak istimewa memerlukan pengaturan nested-sandbox yang dijelaskan dalam [Sandboxing troubleshooting](/id/sandboxing#troubleshooting).168Anda dapat melapisi sandbox Bash bawaan di dalam container untuk pembatasan per-perintah. Container yang tidak istimewa memerlukan pengaturan nested-sandbox yang dijelaskan dalam [Sandboxing troubleshooting](/docs/id/sandboxing#troubleshooting).
121 169
122<h2 id="virtual-machine">170<h2 id="virtual-machine">
123 Virtual machine171 Virtual machine
124</h2>172</h2>
125 173
126Mesin virtual khusus menyediakan pemisahan terkuat, dengan kernel sendiri dan, dalam penerapan cloud atau microVM, hardware virtual sendiri. Opsi termasuk instance cloud, hypervisor lokal, dan microVM seperti Firecracker.174Mesin virtual khusus menyediakan pemisahan terkuat, dengan kernel sendiri dan, dalam penerapan cloud atau microVM, hardware virtual sendiri. Opsi termasuk instance cloud, hypervisor lokal, dan microVM seperti Firecracker. Gunakan pendekatan ini ketika Anda mengevaluasi kode yang tidak terpercaya, ketika kebijakan keamanan Anda memerlukan pemisahan tingkat kernel antara agen dan host, atau ketika tidak ada pendekatan tingkat host yang memenuhi persyaratan kepatuhan Anda.
127 175
128Gunakan pendekatan ini ketika Anda mengevaluasi kode yang tidak terpercaya, ketika kebijakan keamanan Anda memerlukan pemisahan tingkat kernel antara agen dan host, atau ketika tidak ada pendekatan tingkat host yang memenuhi persyaratan kepatuhan Anda. Fitur [sandboxes](https://docs.docker.com/ai/sandboxes/) Docker Desktop menyediakan microVM dengan daemon Docker sendiri dan sinkronisasi workspace, yang dapat menjalankan Claude Code pada host yang sudah memiliki Docker Desktop.176[Docker Sandboxes](https://docs.docker.com/ai/sandboxes/) menyediakan microVM dengan daemon Docker sendiri dan sinkronisasi workspace, yang dapat menjalankan Claude Code pada host apa pun dengan Docker Sandboxes terinstal. Ini adalah produk gratis dan mandiri dari Docker yang tidak memerlukan Docker Desktop.
129 177
130<h2 id="claude-code-on-the-web">178<h2 id="claude-code-on-the-web">
131 Claude Code on the web179 Claude Code on the web
132</h2>180</h2>
133 181
134[Claude Code on the web](/id/claude-code-on-the-web) menjalankan setiap sesi dalam mesin virtual terisolasi yang dikelola Anthropic. Proxy jaringan menerapkan daftar allowlist default, dan proxy terpisah menyimpan token GitHub Anda di luar sandbox sambil mengeluarkan kredensial berscopeduntuk akses repositori di dalamnya.182[Claude Code on the web](/docs/id/claude-code-on-the-web) menjalankan setiap sesi dalam mesin virtual terisolasi yang dikelola Anthropic. Proxy jaringan menerapkan daftar allowlist default, dan proxy terpisah menyimpan token GitHub Anda di luar sandbox sambil mengeluarkan kredensial berscopeduntuk akses repositori di dalamnya. Sesi yang organisasi Anda arahkan ke [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) berjalan pada infrastruktur yang Anda sediakan sebagai gantinya, di mana isolasi, kontrol egress, dan kredensial git adalah tanggung jawab deployment Anda.
135 183
136Gunakan pendekatan ini ketika Anda menginginkan isolasi VM penuh tanpa menyediakan infrastruktur sendiri, atau ketika Anda mendelegasikan tugas dari perangkat yang tidak memiliki lingkungan pengembangan lokal. Ini memerlukan langganan Claude dan akun GitHub yang terhubung, dan sesi mengkloning repositori Anda dari GitHub. Lihat [Claude Code on the web](/id/claude-code-on-the-web) untuk ketersediaan paket dan opsi autentikasi GitHub.184Gunakan pendekatan ini ketika Anda menginginkan isolasi VM penuh tanpa menyediakan infrastruktur sendiri, atau ketika Anda mendelegasikan tugas dari perangkat yang tidak memiliki lingkungan pengembangan lokal. Ini memerlukan langganan Claude. Ketika Anda meluncurkan sesi dari antarmuka web, Anda juga memerlukan akun GitHub yang terhubung sehingga sandbox dapat mengkloning repositori Anda. Ketika Anda meluncurkan dari CLI dengan `--cloud`, Claude Code dapat [membundel dan mengunggah repositori lokal Anda](/docs/id/claude-code-on-the-web#send-local-repositories-without-github) sebagai gantinya jika GitHub tidak terhubung. Lihat [Claude Code on the web](/docs/id/claude-code-on-the-web) untuk ketersediaan paket dan opsi autentikasi GitHub.
137 185
138<h2 id="enforce-isolation-across-an-organization">186<h2 id="enforce-isolation-across-an-organization">
139 Enforce isolation across an organization187 Enforce isolation across an organization
140</h2>188</h2>
141 189
142Pengembang individual dapat memilih pendekatan apa pun di atas. Apa yang dapat diterapkan organisasi, dan dengan alat mana, tergantung pada pendekatan:190Pengembang individual dapat memilih pendekatan sandboxing apa pun di halaman ini. Apa yang dapat diterapkan organisasi, dan dengan alat mana, tergantung pada pendekatan:
143 191
144* **Built-in Bash sandbox**: satu-satunya pendekatan yang diterapkan Claude Code sendiri. Berikan kunci pengaturan `sandbox` melalui [managed settings](/id/settings#settings-files), baik sebagai file yang dikelola oleh MDM Anda atau melalui [server-managed settings](/id/server-managed-settings) di Claude.ai. Lihat [Enforce sandboxing with managed settings](/id/sandboxing#enforce-sandboxing-with-managed-settings) untuk kunci yang akan digunakan dan cara mencegah pengembang memperluas kebijakan.192* **Built-in Bash sandbox**: satu-satunya pendekatan yang diterapkan Claude Code sendiri. Berikan kunci pengaturan `sandbox` melalui [managed settings](/docs/id/managed-settings#delivery-mechanisms), baik sebagai file yang dikelola oleh MDM Anda atau melalui [server-managed settings](/docs/id/server-managed-settings) di Claude.ai. Lihat [Enforce sandboxing with managed settings](/docs/id/sandboxing#enforce-sandboxing-with-managed-settings) untuk kunci yang akan digunakan dan cara mencegah pengembang memperluas kebijakan.
145* **Dev containers**: komit [contoh dev container](/id/devcontainer) ke repositori Anda untuk standardisasi lingkungan di seluruh tim. Ini adalah konvensi daripada batas penegakan, karena Claude Code tidak memerlukan container. Jika pengembang tidak boleh dapat menjalankan Claude Code di luar, terapkan dengan alat manajemen perangkat organisasi Anda atau alat allowlisting perangkat lunak.193* **Dev containers**: komit [contoh dev container](/docs/id/devcontainer) ke repositori Anda untuk standardisasi lingkungan di seluruh tim. Ini adalah konvensi daripada batas penegakan, karena Claude Code tidak memerlukan container. Jika pengembang tidak boleh dapat menjalankan Claude Code di luar, terapkan dengan alat manajemen perangkat organisasi Anda atau alat allowlisting perangkat lunak.
146* **Custom containers and VMs**: distribusikan Claude Code melalui gambar yang disetujui dan gunakan alat manajemen perangkat organisasi Anda atau alat allowlisting perangkat lunak untuk mencegah instalasi di luar.194* **Custom containers and VMs**: distribusikan Claude Code melalui gambar yang disetujui dan gunakan alat manajemen perangkat organisasi Anda atau alat allowlisting perangkat lunak untuk mencegah instalasi di luar.
147 195
148<h2 id="see-also">196<h2 id="see-also">
149 Lihat juga197 Lihat juga
150</h2>198</h2>
151 199
152Halaman-halaman ini mencakup detail konfigurasi dan kebijakan untuk pendekatan di atas.200Halaman-halaman ini mencakup detail konfigurasi dan kebijakan untuk pendekatan sandboxing di halaman ini.
153 201
154* [Sandboxing](/id/sandboxing): konfigurasikan alat Bash bersandbox bawaan202* [Sandboxing](/docs/id/sandboxing): konfigurasikan alat Bash bersandbox bawaan
155* [Dev container](/id/devcontainer): container pengembangan Docker yang telah dikonfigurasi sebelumnya203* [Dev container](/docs/id/devcontainer): container pengembangan Docker yang telah dikonfigurasi sebelumnya
156* [Security](/id/security): model keamanan Claude Code lengkap204* [Security](/docs/id/security): model keamanan Claude Code lengkap
157* [Secure deployment](/id/agent-sdk/secure-deployment): panduan isolasi untuk aplikasi Agent SDK205* [Secure deployment](/docs/id/agent-sdk/secure-deployment): panduan isolasi untuk aplikasi Agent SDK
158* [Settings](/id/settings#sandbox-settings): semua kunci konfigurasi sandbox, termasuk pengiriman pengaturan terkelola206* [Settings](/docs/id/settings-reference#sandbox-settings): semua kunci konfigurasi sandbox, termasuk pengiriman pengaturan terkelola