Batasi kewenangan agen
SelesaiTentukan tindakan, sumber daya, dan kondisi yang diizinkan. Verifikasi izin di luar model dan pisahkan implementasi dari rilis.
Diterbitkan oleh TaigaCara kami menulis
Periksa pemahaman AndaAnda memerintahkan agen untuk mengedit satu branch, tetapi tokennya dapat melakukan push ke branch default. Apa yang menentukan batas efektifnya?Kerjakan latihan
Hal yang akan dipelajari
- Menyatakan izin sebagai tindakan, sumber daya, dan kondisi.
- Memisahkan persetujuan tugas dari kewenangan untuk mengeksekusinya.
- Menguji bahwa tindakan terlarang ditolak.
Jelaskan tugas sebelum memberikan akses
Agen yang membaca kode memerlukan kewenangan berbeda dari agen yang melakukan deployment layanan. Jangan memberikan kedua kelompok izin hanya karena produk yang sama mendukung kedua tindakan tersebut.
Gunakan tiga unsur untuk menentukan kewenangan: tindakan, sumber daya, dan kondisi. Dalam contoh perbaikan laporan fiktif, agen boleh menulis ke satu feature branch selama tugas aktif. Agen boleh membaca file repositori yang disetujui. Agen tidak boleh mengubah data produksi atau aturan perlindungan repositori.
| Operasi yang diperlukan | Contoh batas |
|---|---|
| Memeriksa kode | Membaca repositori yang dipilih |
| Menjalankan pemeriksaan | Menggunakan lingkungan terisolasi dengan fixture fiktif |
| Menyiapkan perubahan | Menulis ke branch tugas |
| Meminta peninjauan | Membuka PR tanpa melakukan merge |
| Merilis perangkat lunak | Menggunakan proses deployment terpisah yang dilindungi |
Cara penegakannya bergantung pada alat. Jika token tidak dapat membatasi akses ke branch tertentu, gunakan kontrol repositori tambahan atau layanan eksekusi. Dokumentasikan kewenangan yang masih tersedia secara jujur.
Tegakkan batas di luar model
Prompt bukan sistem kontrol akses. Komponen eksekusi harus memeriksa tindakan dan sasaran yang diminta terhadap izin saat ini. Komponen ini tidak boleh menerima begitu saja pernyataan model bahwa persetujuan sudah tersedia.
AWS menyarankan izin terbatas dan kredensial sementara untuk workload yang sesuai. OWASP menerapkan prinsip hak akses minimum yang serupa pada agen dan alatnya. Prinsip ini harus diterapkan pada sistem identitas dan eksekusi yang sebenarnya. Panduan AWS IAM, panduan agen OWASP.
Gunakan kredensial berumur pendek jika didukung. Jangan sertakan rahasia yang tidak berkaitan di lingkungan tersebut. Tugas yang hanya membaca repositori tidak boleh mewarisi kata sandi database produksi dari shell pengembang.
Ikat persetujuan pada tindakan yang sebenarnya
Persetujuan untuk menyiapkan perubahan tidak berarti persetujuan untuk melakukan deployment. Keputusan deployment harus menyebutkan artefak, lingkungan tujuan, dan kondisi yang relevan. Jika unsur ini berubah, keputusan sebelumnya mungkin tidak lagi berlaku.
Bayangkan agen yang mengusulkan pembacaan database yang aman, lalu menjalankan kueri berbeda setelah mendapat persetujuan. Mekanisme persetujuan yang berguna memeriksa operasi yang benar-benar dijalankan. Pesan umum seperti “lanjutkan” tanpa sasaran yang jelas dapat menyembunyikan perbedaan ini.
Pisahkan pula identitas dari kemampuan. Catat orang atau workload yang memulai eksekusi. Verifikasi bahwa identitas tersebut masih memiliki izin saat tindakan dilakukan. Pencabutan akses seseorang harus memiliki dampak yang jelas pada pekerjaan dalam antrean.
Uji penolakan dan penghentian
Verifikasi lebih dari jalur yang berhasil. Dalam lingkungan uji terisolasi, coba tindakan pada sumber daya di luar yang diizinkan. Pastikan sistem eksekusi menolaknya. Periksa peristiwa audit tanpa mencatat kredensial.
Lalu uji pembatalan atau kedaluwarsa kredensial. Tentukan pekerjaan yang langsung berhenti dan operasi yang masih dapat diselesaikan. Tombol berhenti belum tentu membatalkan tindakan yang sudah mencapai sistem lain.
Simpan catatan izin singkat bersama tugas. Sertakan penanggung jawab, lingkup yang disetujui, kontrol sebenarnya, pengujian penolakan, dan masa berlaku. Dengan demikian, peninjauan berikutnya cukup spesifik untuk memperbaiki alur kerja.
Kerjakan latihan
Tentukan izin untuk agen yang memperbaiki filter laporan. Daftarkan tiga tindakan yang diizinkan dan tiga tindakan yang ditolak. Sertakan repositori, branch, lingkungan, dan masa berlaku. Jelaskan cara menguji setiap penolakan tanpa mengubah lingkungan produksi.
Unduh lembar kerja (Markdown)Menonaktifkan pilihan ini menghapus seluruh kemajuan yang tersimpan dalam browser.
Kemajuan tetap tersimpan dalam browser ini. Tanpa akun atau pelacakan.