Tips & Tricks (Diperbarui: 22/5/2026)

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.

Panduan Approval dan Sandbox Claude Code | Pengaturan aman untuk kerja harian

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:

KontrolFungsiContoh
permission rulesMemisahkan allow / ask / denysecrets, perintah destruktif, deploy
approval flowBerhenti sebelum efek yang sulit dibalikgit push, publish, send
sandboxMemperkecil jangkauan shellbuild, 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

AksiAturan yang disarankanAlasan
Membaca file, mencari, melihat diffallowRisiko rendah
build, test, lint, analyticsallowJangan memperlambat iterasi
Mengedit kode di branchask atau allow per sesiTergantung repo
git push, deploy, publish, sendaskAda efek ke luar
Membaca .env, rm -rf, git reset --harddenyDampaknya terlalu besar
Menulis ke API eksternalaskMengubah 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

  1. Site konten: baca analytics, pilih topik, buat semua locale, build, deploy, buka URL publik, lalu cek mobile dengan Playwright.
  2. Repo aplikasi: baca kode, analisis diff, refactor di branch, dan test bisa cepat; push, migrasi, API produksi, dan infra harus tetap di ask.
  3. Outreach / backoffice: riset dan drafting boleh otomatis; mengirim dan mem-publish tidak.

Tiga kegagalan yang paling sering terjadi

  1. Menaruh semuanya di ask lalu menyetujui tanpa membaca.
  2. Menjadikan --dangerously-skip-permissions kebiasaan.
  3. 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.

#claude-code #permissions #approval #sandbox #security #workflow
Gratis

PDF Gratis: Cheatsheet Claude Code dalam 5 Menit

Cukup masukkan emailmu dan kami akan langsung mengirim cheatsheet PDF A4 satu halaman.

Kami menjaga data pribadimu dengan aman dan tidak pernah mengirim spam.

Masa

Tentang Penulis

Masa

Engineer yang aktif menggunakan Claude Code. Mengelola claudecode-lab.com, media teknologi 10 bahasa dengan lebih dari 2.000 halaman.