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.

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
denypada.envserta 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:
defaultmemberikan prompt pada penggunaan setiap alat atau perintah untuk pertama kali.planbersifat read-only: agen dapat membaca file dan mengusulkan rencana tetapi tidak dapat mengedit atau menjalankan perintah. Gunakan ini untuk peninjauan (review).acceptEditssecara otomatis menerima pengeditan file tetapi tetap memberikan prompt untuk perintah shell.bypassPermissionsmelewati 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.

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:
- Siapa yang menerbitkannya, dan apakah sumbernya publik dan dipelihara?
- Cakupan apa yang diminta: hanya baca (read-only), atau tulis dan jaringan?
- Data apa yang dapat dilihat setelah terhubung: hanya repo ini, atau seluruh mesin Anda?
- Apakah kredensial di-scope dan jangka pendek, atau apakah itu token admin jangka panjang?
- 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.

Tiga kebiasaan mencakup sebagian besar risiko:
- Tambahkan aturan
denyuntuk.env,*.pem, dan direktorisecrets/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.

Berikut adalah pengaturan yang membuat pekerjaan berguna tetapi terkurung:
- Jalankan headless dengan
claude -pdalam modeplansehingga agen membaca diff dan menulis komentar, tetapi tidak pernah mengedit file atau menjalankan perintah build. - Berikan hanya
contents: readdanpull-requests: write. Tidak ada job deploy, tidak ada cakupan infrastruktur. - Gunakan
GITHUB_TOKENjangka pendek dari job, bukan token pribadi, dan jangan pernah menempatkan kunci database atau cloud produksi di environment job tersebut. - Tambahkan daftar
denyuntuk path rahasia dancurlkeluar (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.jsonsecara berkala, tidak hanya saat pengaturan awal. - Verifikasi ulang server MCP setelah peningkatan versi besar.
- Konfirmasi job CI masih berjalan dalam mode
plandan tidak membawa rahasia produksi. - Rotasi token pada interval waktu tertentu dan setelah setiap paparan yang dicurigai.
- Simpan file
CLAUDE.mdyang 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.
Lanjutkan membaca

Wed Mar 25 2026 20:00:00 GMT-0400 (Eastern Daylight Time)
Resizer Gambar Massal: Ubah Ukuran Ratusan Gambar Sekaligus (Gratis)
Ubah ukuran ratusan gambar secara massal dan gratis menggunakan alat peramban, ImageMagick, XnConvert, atau skrip Python. Dapatkan penghematan byte nyata dan alur kerja batch yang aman.

Wed Mar 18 2026 20:00:00 GMT-0400 (Eastern Daylight Time)
WebP Converter: Cara Mengubah Gambar ke WebP (Dengan Ukuran Asli)
Ubah gambar JPEG dan PNG menjadi WebP untuk file web yang lebih kecil. Kami membahas ukuran terukur nyata, perintah cwebp, metode Python dan peramban (browser), serta strategi fallback JPEG/PNG.

Wed Mar 11 2026 20:00:00 GMT-0400 (Eastern Daylight Time)
Real-ESRGAN AI Upscaling: Cara Kerja dan Kapan Menggunakannya
Apa itu Real-ESRGAN, bagaimana super-resolution berbasis GAN-nya bekerja, apa keunggulannya (upscaling 4x foto dan seni), serta batasannya dengan perintah yang jujur.