Panduan Approval dan Sandbox Claude Code | Pengaturan aman untuk kerja harian
Cara membagi aksi Claude Code ke allow, ask, deny, dan sandbox dengan settings praktis, hooks, dan contoh workflow nyata.
Approval aktif tidak otomatis berarti Claude Code sudah aman. Kalau konfirmasi terlalu sering muncul, orang akan berhenti membaca. Kalau allow terlalu longgar, agent bisa melakukan tindakan yang seharusnya masih berhenti di tangan manusia.
Artikel ini menjawab pertanyaan yang biasanya muncul setelah mulai memakai Claude Code: apa yang boleh otomatis, apa yang harus ask, dan apa yang sebaiknya langsung deny? Untuk konteks yang lebih luas, lihat juga harness engineering, permissions guide, dan security failure cases.
Approval bukan hal yang sama dengan keamanan
Setup harian yang sehat biasanya punya tiga lapisan:
| Kontrol | Fungsi | Contoh |
|---|---|---|
| permission rules | Memisahkan allow / ask / deny | secrets, perintah destruktif, deploy |
| approval flow | Berhenti sebelum efek yang sulit dibalik | git push, publish, send |
| sandbox | Memperkecil jangkauan shell | build, verifikasi, skrip eksploratif |
Referensi resmi tetap permissions, settings, dan hooks. Inti yang paling berguna adalah: yang reversible harus cepat, yang tidak reversible harus sengaja dibuat lambat.
Pembagian praktis untuk kerja setiap hari
| Aksi | Aturan yang disarankan | Alasan |
|---|---|---|
| Membaca file, mencari, melihat diff | allow | Risiko rendah |
| build, test, lint, analytics | allow | Jangan memperlambat iterasi |
| Mengedit kode di branch | ask atau allow per sesi | Tergantung repo |
git push, deploy, publish, send | ask | Ada efek ke luar |
Membaca .env, rm -rf, git reset --hard | deny | Dampaknya terlalu besar |
| Menulis ke API eksternal | ask | Mengubah sistem nyata |
Baseline yang berguna untuk .claude/settings.json
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"permissions": {
"allow": [
"Read",
"Grep",
"Glob",
"Bash(npm run build)",
"Bash(npm run test)",
"Bash(node scripts/analytics-report.mjs *)"
],
"ask": [
"Edit",
"Write",
"Bash(git push *)",
"Bash(npx wrangler pages deploy *)",
"Bash(node scripts/outreach-send-mails.mjs --send)",
"WebFetch(domain:api.gumroad.com)"
],
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Bash(rm -rf *)",
"Bash(git reset --hard *)",
"Bash(curl * | sh)"
]
},
"sandbox": {
"enabled": true,
"failIfUnavailable": false
}
}
Kalau environment-mu tidak punya sandbox yang memadai, pindahkan lebih banyak aksi dengan side effect ke ask.
Hooks membantu mengurangi kesalahan berulang
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash(git add*)",
"hooks": [{
"type": "command",
"command": "git diff --cached --name-only | grep -E '^\\.env' && echo 'Blocked: .env staged' && exit 1 || exit 0"
}]
},
{
"matcher": "Bash(npx wrangler pages deploy*)",
"hooks": [{
"type": "command",
"command": "npm run build"
}]
}
],
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [{
"type": "command",
"command": "npm run test || true"
}]
}
]
}
}
Pola yang penting:
- blokir secrets sebelum commit
- paksa build sebelum deploy
- jalankan verifikasi deterministik setelah edit
Tiga workflow nyata
- Site konten: baca analytics, pilih topik, buat semua locale, build, deploy, buka URL publik, lalu cek mobile dengan Playwright.
- Repo aplikasi: baca kode, analisis diff, refactor di branch, dan test bisa cepat; push, migrasi, API produksi, dan infra harus tetap di
ask. - Outreach / backoffice: riset dan drafting boleh otomatis; mengirim dan mem-publish tidak.
Tiga kegagalan yang paling sering terjadi
- Menaruh semuanya di
asklalu menyetujui tanpa membaca. - Menjadikan
--dangerously-skip-permissionskebiasaan. - Mengira build sukses berarti release sukses.
Kegagalan ketiga sangat sering pada site multibahasa: build hijau, tapi URL publik masih lama atau ada locale yang belum live.
Apa yang kami ubah hari ini
Di ClaudeCodeLab, aturan daily automation sekarang lebih ketat:
- setiap run harus menerbitkan satu artikel baru
- satu tugas yang sudah ada juga harus maju
- Playwright wajib memeriksa mobile
- semua URL bahasa untuk slug yang sama dicek di production
Keamanan nyata datang dari aturan operasi yang jelas, bukan dari peringatan samar.
Langkah berikutnya
Mulailah dari cheatsheet gratis. Kalau kamu butuh settings, hooks, dan contoh setup yang siap pakai, buka English products page. Kalau kamu perlu bantuan untuk rollout, review flow, atau batas aman otomatisasi, gunakan consultation page.
PDF gratis: cheatsheet Claude Code
Masukkan email dan unduh satu halaman berisi command, kebiasaan review, dan workflow aman.
Kami menjaga datamu dan tidak mengirim spam.
Tentang penulis
Masa
Engineer yang berfokus pada workflow Claude Code praktis dan adopsi tim.
Artikel terkait
Permission safety ladder Claude Code: perluas akses tanpa kehilangan kontrol
Naik dari read-only ke edit terbatas, command bukti, dan cek deploy dengan kontrol yang jelas.
Claude Code Small PR Proof Pack: perubahan kecil yang mudah direview
Paket bukti untuk PR Claude Code: diff, check, URL publik, jalur CTA, dan rollback.
Review gate Claude Code sebelum commit: diff, test, URL publik, dan CTA
Cara memakai Claude Code sebelum commit: diff scope, build, URL publik, link Gumroad, CTA konsultasi, missing test, dan file tidak terkait.