Resep Kebijakan
Kebijakan salin-tempel untuk skenario yang paling sering dihadapi pengguna. Setiap resep di halaman ini:
- Dimulai dari pernyataan masalah satu paragraf dalam bahasa yang lugas.
- Menyertakan
policy.yamllengkap dengan anotasi -- siap dimasukkan ke dasbor ataucontrolzero.yamllokal Anda. - Mendaftar persis apa yang diblokir dan apa yang diizinkan, beserta aksi
yang diekstrak dan
reason_codeuntuk setiap kasus. - Resep penerapan berbasis fixture menyertakan file
scenarios.jsonyang dapat dibaca mesin dan dijalankan di CI; resep yang hanya berupa panduan mungkin tidak memilikinya.
Pada Claude Code, Gemini CLI, Cursor IDE, dan Kiro CLI, penolakan pada peristiwa yang menerapkan kebijakan menghentikan pemanggilan alat sebelum dijalankan.
Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis
Coverage is declared per event, not per host, so an enforcing event never implies protection for another event the vendor does not expose.
Matriks kapabilitas
diturunkan dari deklarasi cakupan di dalam kode; jalankan
controlzero coverage --json untuk mengekspornya bagi instalasi Anda (perintah
controlzero coverage saja hanya mencetak ringkasan singkat per host).
Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis
The enforcement path fails closed by default when it cannot establish coverage. Signed policy bundles make policy tampering detectable, and the audit trail distinguishes a control that did not run from one that ran and found nothing.
Untuk DLP modifikasi-lalu-lanjutkan, SDK Python menyamarkan secret yang cocok di tempat pada Claude Code dan Gemini CLI, lalu mengembalikan argumen yang sudah disamarkan untuk diteruskan.
Baru di sini? Mulai dengan Database read-only -- ini contoh kanonis dan yang paling dulu dipasang sebagian besar pelanggan.
Resep yang sudah tersedia
| # | Resep | Masalah yang diselesaikan |
|---|---|---|
| 1 | Read-only database | Agent can SELECT but never DROP. Piggyback-proof. |
| 2 | Block secrets and PII egress | LLM calls allowed, but API keys / SSNs / cards never leave. |
| 3 | Dev memperingatkan, prod menolak | Satu kebijakan, dua sikap: lunak di dev, keras di prod. |
| 4 | LLM model allow-list | Only the models you have vetted can be called. |
| 5 | Akses file bercakupan | Baca/tulis repo Anda dan /tmp; tolak kunci SSH, kredensial AWS, /etc. |
| 6 | Block outbound network | Stop curl / wget / ssh / nc from exfiltrating data. |
| 7 | Multi-tenant isolation | Team A agents never touch Team B resources. |
| 8 | Tamper response | Four postures when the bundle is altered: warn, deny, deny-all, quarantine. |
| 9 | Deny-list: block the dangerous few | Let the agent work freely; hard-block only rm, DROP, disk wipes, and SSH-key writes. |
| 10 | Approval (HITL) for destructive actions | Green-light rm / DROP / TRUNCATE / DELETE / GRANT / REVOKE before they run; fail closed otherwise. |
| 15 | Redaksi PII tingkat prompt | Hanya SDK Python; host pemrograman yang didukung adalah Claude Code dan Gemini CLI. |
COMING SOON
Empat resep terhambat oleh fitur yang sedang dikerjakan atau
perlu ditampilkan di dokumentasi. Hubungi dukungan dengan tag TODO-RECIPE-NN
jika Anda ingin salah satunya diprioritaskan.
| # | Resep | Terhambat oleh | Pelacakan |
|---|---|---|---|
| 11 | Akses berjendela waktu | Condition DSL untuk pencocokan waktu + principal | TODO-RECIPE-11 |
| 12 | Peringatan saat penolakan berulang | Pembuat aturan peringatan (fitur baru) | TODO-RECIPE-12 |
| 13 | Operasi git bercakupan branch | Shell extractor (T4 -- spesifikasi sudah masuk, salinan SDK sedang dikerjakan) | TODO-RECIPE-13 |
| 14 | Batas laju per organisasi | Fitur sudah ada, perlu ditampilkan di dokumentasi + condition DSL | TODO-RECIPE-14 |
Format resep
Setiap halaman resep mengikuti templat yang sama agar mudah dipindai:
- Masalah -- satu paragraf dengan suara pengguna.
- Kebijakan -- YAML lengkap, siap salin-tempel.
- Mengapa ini berhasil -- extractor mana yang berjalan, aturan mana yang cocok, keputusan mana yang terpicu.
- Apa yang diblokir -- tabel berisi aksi yang diekstrak, keputusan,
reason_code. - Apa yang diizinkan -- tabel berisi aksi yang diekstrak, keputusan,
reason_code. - Coba sendiri -- pemanggilan
controlzero testuntuk skenario yang didokumentasikan dan, jika tersedia, fixture yang mendukung tabel di atas. - Catatan -- apa yang TIDAK dicakup resep. Jujur tentang celahnya agar Anda memadukannya dengan resep kedua atau kontrol tingkat alat.
- Resep terkait -- dua atau tiga resep berikutnya yang kemungkinan Anda butuhkan.
Cara kerja fixture uji
Resep penerapan berbasis fixture di bawah docs-site/docs/recipes/
memiliki direktori yang sesuai di
tests/fixtures/enforcement-spec/recipes/{recipe-name}/ di repo utama:
policy.yaml-- identik byte demi byte dengan YAML yang ditampilkan di resep.scenarios.json-- array kasus{input, expected}yang mencakup setidaknya satu izin, satu penolakan, satu upaya piggyback, dan satu kasus "jatuh ke default" per resep.
Sebuah driver di
tests/fixtures/enforcement-spec/recipes/test_recipes.py mengiterasi
setiap direktori resep pada setiap eksekusi CI dan memastikan keputusan +
reason_code + metode yang diekstrak sesuai dengan yang diharapkan. Jika halaman resep
pernah bertentangan dengan apa yang sebenarnya dilakukan kode, CI menjadi merah.
Menambahkan resep
Resep adalah pernyataan produk, bukan sekadar halaman dokumentasi. Sebelum menulisnya, tanyakan:
- Apakah ini masalah yang sudah ditanyakan setidaknya tiga pelanggan?
- Dapatkah produk benar-benar menerapkannya saat ini?
- Apakah ada satu kebijakan yang cocok untuk 80% kasus, dengan catatan yang dicantumkan untuk 20% sisanya?
Jika ketiga jawabannya ya, ikuti format di atas dan tambahkan file markdown DAN direktori fixture dalam PR yang sama. Driver CI mengurus sisanya.
Jika jawaban untuk pertanyaan 2 adalah "belum", hubungi dukungan agar
tim peta jalan dapat mencatat celahnya, tambahkan resep ke tabel "COMING SOON"
di atas dengan tag TODO-RECIPE-NN yang baru, lalu berhenti. Resep
yang setengah berfungsi lebih buruk daripada tidak ada resep.