Role-Based Access Control
Dokumentasi RBAC (Role-Based Access Control)
Ringkasan
Sistem mengimplementasikan model RBAC yang komprehensif untuk mengelola kontrol akses di berbagai sumber daya dan tindakan. Ini terdiri dari peran, kebijakan, dan penugasan peran pengguna.
Komponen Inti
Sumber Daya
Sistem mendefinisikan sumber daya yang dilindungi berikut:
- Audit
- Payment
- Region
- Resource
- Team
- Role
- UserRole
Tindakan
Tindakan yang tersedia pada sumber daya:
- List
- Get
- Create
- Update
- Delete
Sistem Peran
Peran adalah kumpulan izin yang mendefinisikan tindakan apa yang dapat dilakukan pengguna pada sumber daya tertentu. Peran membantu mengorganisir dan mengelola hak akses secara efisien dengan mengelompokkan izin terkait bersama-sama.
Peran yang Telah Ditentukan Sebelumnya
-
AccountAdmin
- Akses penuh ke sumber daya tingkat akun
- Dapat mengelola anggota tim
- Dapat mengkonfigurasi pengaturan akun
-
Developer
- Dapat mengelola sumber daya pengembangan
-
Auditor
- Akses read-only ke log Audit
-
Finance
- Akses penuh ke fungsi Payment
-
Ops
- Akses penuh ke sumber daya operasional
Kebijakan
Kebijakan adalah blok bangunan fundamental dari kontrol akses yang mendefinisikan izin spesifik. Setiap kebijakan mewakili aturan yang memberikan izin untuk melakukan tindakan tertentu pada sumber daya tertentu.
Struktur Kebijakan
- Resource: Sumber daya target
- Action: Tindakan yang diizinkan
Penugasan Kebijakan
- Kebijakan ditetapkan ke peran melalui pemetaan RolePolicy
- Beberapa kebijakan dapat ditetapkan ke satu peran
- Penugasan kebijakan unik per peran
Kontrol Izin Pengguna
Sistem mengimplementasikan kontrol izin melalui model tiga tingkat: Users, Roles, dan Policies. Peran bertindak sebagai jembatan antara pengguna dan kebijakan, menyediakan cara yang fleksibel dan dapat dikelola untuk mengontrol hak akses.
Alur Kontrol
-
Penugasan Pengguna
- Pengguna ditetapkan satu atau lebih peran
- Penugasan peran spesifik untuk setiap akun
- Pengguna dapat memiliki peran yang berbeda di akun yang berbeda
-
Peran sebagai Jembatan
- Peran berfungsi sebagai wadah untuk kumpulan kebijakan
- Setiap peran mendefinisikan serangkaian tanggung jawab tertentu
- Peran membuat manajemen izin lebih mudah dipelihara
-
Penegakan Kebijakan
- Kebijakan mendefinisikan izin aktual
- Setiap permintaan divalidasi terhadap kebijakan peran pengguna
- Akses diberikan hanya jika kebijakan yang cocok ada
Proses Otorisasi
-
Pemrosesan Permintaan
- Ekstrak informasi akun
- Identifikasi sumber daya dan tindakan target
- Verifikasi peran dan kebijakan pengguna
-
Pemeriksaan Izin
- Peran khusus akun divalidasi terhadap akun target
- Pencocokan kebijakan mempertimbangkan pencocokan tepat dan wildcard
-
Kontrol Akses
- Akses diberikan jika peran yang ditetapkan memiliki kebijakan yang cocok
- Permintaan yang ditolak mengembalikan hasil kosong daripada kesalahan
- Logging audit terjadi setelah validasi RBAC
Praktik Terbaik
-
Manajemen Peran
- Gunakan peran yang telah ditentukan sebelumnya jika memungkinkan
- Buat peran kustom dengan izin minimum yang diperlukan
- Tinjau penugasan peran secara teratur
-
Pertimbangan Keamanan
- Selalu validasi konteks akun
- Implementasikan pembatasan UI berbasis peran
- Pertahankan log audit untuk perubahan peran
-
Kinerja
- Penugasan peran dan kebijakan di-cache
- Operasi batch tersedia untuk penugasan massal
- Query database yang dioptimalkan untuk pemeriksaan izin