Jalur 03Pelajaran 2 / 6

Batasi kewenangan agen

Tentukan tindakan, sumber daya, dan kondisi yang diizinkan. Verifikasi izin di luar model dan pisahkan implementasi dari rilis.

Praktisi9 minDitinjau

Diterbitkan oleh Cara 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
Anda memerintahkan agen untuk mengedit satu branch, tetapi tokennya dapat melakukan push ke branch default. Apa yang menentukan batas efektifnya?

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 diperlukanContoh batas
Memeriksa kodeMembaca repositori yang dipilih
Menjalankan pemeriksaanMenggunakan lingkungan terisolasi dengan fixture fiktif
Menyiapkan perubahanMenulis ke branch tugas
Meminta peninjauanMembuka PR tanpa melakukan merge
Merilis perangkat lunakMenggunakan 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)
Periksa pemahaman Anda ↑

Lanjutkan belajar

Sumber dan bacaan lanjutan

Bacaan terkait dari Taiga

← Pelajaran sebelumnya: Tentukan ke mana data Anda boleh mengalir