Sat Jun 27 2026 20:00:00 GMT-0400 (Eastern Daylight Time)

Praktik Terbaik Keamanan Claude Code untuk Tim di Tahun 2026

Panduan keamanan praktis bagi tim yang menggunakan Claude Code: membahas mode izin, allowlists, vetting MCP, penanganan secrets, dan menjalankan CI dengan prinsip least-privilege.

Praktik Terbaik Keamanan Claude Code untuk Tim di Tahun 2026

Terakhir diperbarui: June 28, 2026

Agen coding AI yang dapat membaca repo Anda, menjalankan perintah shell, dan memanggil layanan eksternal sangat berguna justru karena jangkauannya. Jangkauan yang sama ini juga merupakan risiko. Prompt yang salah dibaca, allowlist yang ceroboh, atau satu server MCP yang tidak tepercaya dapat membocorkan token atau menghapus sebuah branch. Panduan ini ditujukan bagi developer atau platform lead yang ingin menggunakan Claude Code dalam pekerjaan sehari-hari dan di CI tanpa menyerahkan kunci produksi kepadanya.

Jawaban singkat: bagaimana tim menjaga keamanan Claude Code?

Jalankan agen dengan hak istimewa paling minimal (least privilege) dan tinjau apa yang dilakukannya. Secara praktis, ini berarti lima hal:

  • Mulai dalam mode izin restriktif dan berikan alat melalui allowlist sempit, bukan "selalu izinkan" secara umum.
  • Jauhkan rahasia dari konteks model: tidak ada kunci tempel (pasted keys), dan aturan deny pada .env serta path rahasia.
  • Verifikasi setiap server MCP sebelum menghubungkannya, karena server yang tidak tepercaya dapat membaca data dan bertindak atas nama Anda.
  • Anggap konten web yang diambil sebagai input yang tidak tepercaya yang mungkin membawa instruksi prompt-injection.
  • Di CI, berikan agen token jangka pendek dengan cakupan baca (read-scoped) dan jangan pernah mengekspos kredensial produksi.

Sisa artikel ini mengubah setiap poin tersebut menjadi pengaturan konkret, lengkap dengan tabel risiko, referensi izin, dan skenario CI yang dapat Anda salin.

Bagaimana mode izin dan allowlist benar-benar bekerja?

Claude Code akan bertanya sebelum menjalankan alat untuk pertama kalinya. Anda memutuskan apakah keputusan itu diingat, di-scope, atau dilewati. Mode izin menetapkan dasar:

  • default memberikan prompt pada penggunaan setiap alat atau perintah untuk pertama kali.
  • plan bersifat read-only: agen dapat membaca file dan mengusulkan rencana tetapi tidak dapat mengedit atau menjalankan perintah. Gunakan ini untuk peninjauan (review).
  • acceptEdits secara otomatis menerima pengeditan file tetapi tetap memberikan prompt untuk perintah shell.
  • bypassPermissions melewati setiap prompt. Perlakukan ini hanya sebagai sandbox.

Kontrol yang tahan lama berada di .claude/settings.json di bawah permissions, dengan aturan allow, ask, dan deny. Aturan di-scope berdasarkan alat dan pola, jadi Anda memberikan persis apa yang dibutuhkan tugas:

{
  "permissions": {
    "allow": ["Read", "Edit", "Bash(npm test:*)", "Bash(git diff:*)"],
    "ask": ["Bash(git push:*)", "WebFetch"],
    "deny": ["Read(./.env)", "Read(./secrets/**)", "Bash(curl:*)", "Bash(rm -rf:*)"]
  }
}

Aturan deny selalu menang atas allow, itulah sebabnya path rahasia di atas tetap tidak dapat dibaca meskipun ada aturan Read yang luas. Anthropic mendokumentasikan sintaks dan prioritas aturan lengkap dalam identity and access management docs Claude Code.

Seorang developer meninjau kode yang dihasilkan AI di tablet sebelum menyetujui pemanggilan alat agen

Hindari --dangerously-skip-permissions di luar container yang dapat dibuang (disposable container). Ini menghilangkan satu titik pemeriksaan manusia yang menangkap rm yang buruk atau panggilan jaringan tak terduga. Jika Anda menginginkan kecepatan tanpa risiko itu, lebih baik menggunakan allowlist ketat sehingga perintah rutin berjalan tanpa pengawasan sementara apa pun yang baru masih menjeda untuk Anda.

Referensi Risiko dan Mitigasi

Sebagian besar insiden berakar pada sejumlah pola. Petakan setiap pola ke kontrol sebelum Anda menskalakan agen di seluruh tim.

Risiko Mengapa terjadi Mitigasi
Paparan rahasia Kunci ditempelkan ke chat atau dibaca dari .env deny path rahasia; kirim kredensial melalui environment, tidak pernah prompt
Perintah destruktif Allow yang luas atau bypassPermissions pada rm/git reset Pertahankan rm -rf dan force-push dalam ask atau deny; tinjau diffs
Prompt injection Halaman yang diambil atau teks isu membawa instruksi tersembunyi Perlakukan konten web/isu sebagai tidak tepercaya; batasi WebFetch ke domain yang diketahui
Server MCP tidak tepercaya Server dengan cakupan tulis/jaringan bertindak atas nama Anda Verifikasi penulis dan izin; sematkan versi (pin versions); scope paling minimal
Akses file terlalu luas Agen membaca atau mengedit di luar proyek Batasi ke repo; hindari additionalDirectories tambahan
Penulisan ulang riwayat Force-push atau hard reset kehilangan pekerjaan Perlindungan branch; ask pada git push --force
Kebocoran kredensial CI Token produksi ditempatkan di env runner Token jangka pendek, cakupan baca; tidak ada kredensial prod di job review

Kerangka ini mengikuti OWASP Top 10 for LLM Applications, yang menyebut prompt injection, penanganan output yang tidak aman, dan agensi berlebihan sebagai risiko agen utama.

Referensi Izin dan Cakupan (Scope)

Tabel ini adalah lembar contekan yang saya berikan kepada anggota tim baru. Ini mencakup pengaturan yang mengubah radius ledakan dari satu kali jalankan.

Setting / flag Apa yang dikontrol Default yang direkomendasikan
permissions.allow Panggilan alat yang berjalan tanpa prompt Daftar sempit, misal: Read, Bash(npm test:*)
permissions.ask Panggilan yang selalu memberikan prompt terlebih dahulu Tulis, jaringan, instalasi paket
permissions.deny Panggilan yang diblokir sepenuhnya Read(./.env), Bash(curl:*), path rahasia
--permission-mode plan Perencanaan read-only, tanpa edit atau perintah Tinjauan kode dan audit
acceptEdits mode Menerima editan secara otomatis, tetap prompt untuk shell Refaktor lokal tepercaya
--dangerously-skip-permissions Melewati setiap prompt Hanya sandbox yang dapat dibuang (disposable)
additionalDirectories Folder tambahan yang mungkin dibaca agen Biarkan tidak diatur; batasi ke repo

Memverifikasi server MCP sebelum Anda menghubungkannya

Server MCP memperluas agen dengan alat baru: klien database, integrasi tiket, browser. Setiap yang Anda tambahkan adalah kode yang dapat membaca konteks dan mengambil tindakan. Server yang tidak tepercaya adalah cara tercepat untuk mengubah agen yang membantu menjadi jalur eksfiltrasi data, jadi standar untuk menghubungkannya harus sama dengan standar yang akan Anda terapkan pada setiap dependensi dengan akses jaringan.

Sebelum Anda menambahkan server, jawab lima pertanyaan:

  1. Siapa yang menerbitkannya, dan apakah sumbernya publik dan dipelihara?
  2. Cakupan apa yang diminta: hanya baca (read-only), atau tulis dan jaringan?
  3. Data apa yang dapat dilihat setelah terhubung: hanya repo ini, atau seluruh mesin Anda?
  4. Apakah kredensial di-scope dan jangka pendek, atau apakah itu token admin jangka panjang?
  5. Bisakah Anda menyematkan versi sehingga pembaruan otomatis tidak dapat memperluas aksesnya secara diam-diam?

Hubungkan server dengan cakupan paling minimal yang melakukan pekerjaan, dan jauhkan server yang mampu menulis (write-capable) atau menghadap produksi dari konfigurasi bersama atau CI. Untuk mekanisme pengaturan dan panduan mendalam, lihat Claude Code MCP integration guide kami. Postingan Claude Code productivity tips membahas cara menjaga jejak kaki tetap kecil tanpa memperlambat diri sendiri.

Menjaga rahasia agar tidak terjangkau model

Rahasia yang paling bersih adalah yang tidak pernah dilihat oleh model. Jangan menempelkan API key ke prompt, dan jangan meminta agen untuk "membaca kunci dari config dan menggunakannya." Biarkan kredensial hidup di environment dan acu berdasarkan namanya sehingga nilainya tetap berada di luar transkrip.

Tumpukan gembok melambangkan rotasi rahasia dan menjaga API key agar tidak masuk ke konteks agen AI

Tiga kebiasaan mencakup sebagian besar risiko:

  • Tambahkan aturan deny untuk .env, *.pem, dan direktori secrets/ apa pun sehingga agen tidak dapat membacanya bahkan secara tidak sengaja.
  • Gunakan pemindai rahasia pre-commit (seperti gitleaks atau git secrets) agar kunci yang terlepas gagal dalam commit, bukan audit.
  • Rotasi apa pun yang benar-benar terekspos segera, lalu periksa log dan riwayat. Rotasi adalah satu-satunya perbaikan yang benar-benar menutup celah.

Jika sebuah kunci sudah mencapai transkrip atau commit, anggaplah itu telah dikompromikan dan rotasikan. Mencari riwayat git dengan git log -S membantu Anda menemukan di mana ia mendarat.

Skenario: mengaktifkan Claude Code di CI tanpa kredensial produksi

Sebuah tim ingin Claude Code meninjau pull request di GitHub Actions. Tujuannya adalah komentar peninjauan otomatis, dengan kemampuan nol untuk melakukan deploy, menulis ke main, atau menyentuh database produksi.

Server pusat data di balik kontrol akses, mewakili least-privilege CI untuk Claude Code

Berikut adalah pengaturan yang membuat pekerjaan berguna tetapi terkurung:

  • Jalankan headless dengan claude -p dalam mode plan sehingga agen membaca diff dan menulis komentar, tetapi tidak pernah mengedit file atau menjalankan perintah build.
  • Berikan hanya contents: read dan pull-requests: write. Tidak ada job deploy, tidak ada cakupan infrastruktur.
  • Gunakan GITHUB_TOKEN jangka pendek dari job, bukan token pribadi, dan jangan pernah menempatkan kunci database atau cloud produksi di environment job tersebut.
  • Tambahkan daftar deny untuk path rahasia dan curl keluar (outbound), sehingga upaya prompt-injection di dalam diff PR tidak dapat mengeksfiltrasi apa pun.
  • Sematkan versi action dan Claude Code, dan batasi setiap langkah deploy di belakang lingkungan terpisah yang disetujui manusia.
permissions:
  contents: read
  pull-requests: write
steps:
  - run: claude -p "Review the diff for security issues" --permission-mode plan
    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Job peninjauan melihat kode dan memposting umpan balik. Ia tidak dapat mencapai produksi karena kredensial produksi tidak pernah berada dalam cakupan (scope). Claude Code security overview dari Anthropic menjelaskan postur least-privilege ini untuk jalankan otomatis dan headless.

Apa yang tidak boleh Anda tempelkan ke agen coding AI?

Beberapa input seharusnya tidak berada di dekat transkrip, karena apa pun dalam context window dapat digema, dicatat (logged), atau ditindaklanjuti:

  • Kunci API langsung, URL database dengan kata sandi, atau kredensial root cloud.
  • PII pelanggan atau data teregulasi yang tidak akan Anda masukkan ke tiket dukungan.
  • Kunci penandatanganan pribadi, sertifikat, atau file .pem.
  • String koneksi produksi lengkap ketika read replica atau local fixture sudah cukup.

Ketika agen membutuhkan akses, berikan ia path ke kredensial yang di-scope melalui environment daripada rahasianya sendiri. Hasilnya sama, radius ledakan jauh lebih kecil.

Audit, hook, dan peninjauan berkelanjutan

Hak istimewa paling minimal menetapkan batas bawah; tinjauan menjaga Anda tetap di sana. Baca rencana agen sebelum Anda menyetujui langkah berisiko, dan baca diff sebelum Anda commit. Untuk perubahan yang lebih besar, disiplin yang sama yang membuat AI-assisted refactoring aman berlaku di sini: langkah kecil yang dapat ditinjau mengalahkan satu kali jalankan raksasa tanpa pengawasan.

Tambahkan pagar pembatas deterministik dengan hook. Hook PreToolUse dapat memeriksa perintah dan memblokirnya sebelum dijalankan, inilah cara Anda menegakkan aturan yang seharusnya tidak pernah dilewati model, seperti menolak penulisan ke path yang dilindungi. Pasangkan itu dengan jejak audit sehingga Anda dapat menjawab apa yang dilakukan agen, kapan, dan atas nama siapa.

Daftar periksa berulang cepat untuk tim:

  • Tinjau daftar allow dan deny di .claude/settings.json secara berkala, tidak hanya saat pengaturan awal.
  • Verifikasi ulang server MCP setelah peningkatan versi besar.
  • Konfirmasi job CI masih berjalan dalam mode plan dan tidak membawa rahasia produksi.
  • Rotasi token pada interval waktu tertentu dan setelah setiap paparan yang dicurigai.
  • Simpan file CLAUDE.md yang menyatakan hal-hal non-negosiasi: tidak ada force-push ke main, tidak ada akses DB prod langsung, tidak ada rahasia di prompt.

Untuk alur kerja yang lebih luas seputar semua ini, Claude Code ultimate guide memandu konfigurasi dari awal hingga akhir.

Poin penting (Key takeaway)

Keamanan untuk agen coding AI adalah pemikiran hak istimewa paling minimal yang sudah Anda terapkan pada service account, dituliskan sebagai aturan izin. Mulai dengan restriktif, perluas dengan allowlist sempit, tolak path rahasia, verifikasi server MCP seperti dependensi, perlakukan konten yang diambil sebagai tidak tepercaya, dan jauhkan kredensial produksi dari job apa pun yang dapat dijangkau agen. Lakukan itu, dan Claude Code akan tetap menjadi sepasang tangan cepat, bukan pintu terbuka.

Gunakan alat gratis sambil mengikuti panduan.