API7 Enterprise 3.2.14.4: Batas Izin untuk Manajemen Izin yang Lebih Baik
August 15, 2024
API7 Enterprise v3.2.14.4 secara resmi dirilis, menampilkan pengenalan batasan izin untuk memenuhi kebutuhan manajemen izin pengguna yang lebih granular di perusahaan.
Apa Itu Batasan Izin?
Batasan izin, seperti namanya, adalah seperti dinding izin yang mendefinisikan cakupan maksimum izin yang dapat dimiliki oleh seorang pengguna. Ini digunakan untuk membatasi tindakan yang dapat dilakukan oleh pengguna atau peran dalam sistem. Tujuan utamanya adalah untuk meningkatkan keamanan sistem dan mencegah penyalahgunaan izin. Dengan menetapkan "dinding" ini, kita dapat memastikan bahwa pengguna hanya dapat beroperasi dalam lingkup tanggung jawab mereka dan tidak dapat mengakses atau memodifikasi data dalam sistem di luar wewenang mereka.
Batasan izin dapat menggunakan kembali kebijakan izin yang sudah ada dalam sistem atau membuat kebijakan izin baru secara khusus. Ketika seorang pengguna diberi batasan izin, ini membatasi izin mereka tetapi tidak secara langsung memberikan mereka izin apa pun.
Contoh
Misalkan kita membuat kebijakan izin yang memberikan izin operasi dan melihat layanan di semua grup gateway dan menetapkan kebijakan ini sebagai batasan izin untuk pengguna Tom.
{ "statement": [ // Izin melihat di semua grup gateway { "effect": "allow", "resources": [ "arn:api7:gateway:gatewaygroup/<.*>" ], "actions": [ "<.*>Get<.*>" ] }, // Izin operasi layanan di semua grup gateway { "effect": "allow", "resources": [ "*" ], "actions": [ "arn:api7:gateway:gatewaygroup/<.*>/publishedservice/<.*>" ] } ] }
Dalam situasi seperti ini, izin maksimum Tom dibatasi dalam kebijakan izin ini. Meskipun batasan izin telah ditetapkan, ini tidak berarti Tom sudah memiliki izin-izin tersebut. Selanjutnya, kita menetapkan Tom sebuah peran dengan kebijakan izin berikut:
{ "statement": [ // Izin melihat di semua grup gateway { "effect": "allow", "resources": [ "arn:api7:gateway:gatewaygroup/<.*>" ], "actions": [ "<.*>Get<.*>" ] }, // Izin operasi layanan di semua grup gateway { "effect": "allow", "resources": [ "arn:api7:gateway:gatewaygroup/<.*>/publishedservice/<.*>" ], "actions": [ "<.*>" ] }, // Izin operasi untuk plugin kustom { "effect": "allow", "resources": [ "arn:api7:gateway:gatewaysetting/*" ], "actions": [ "gateway:<.*>CustomPlugin<.*>" ] } ] }
Meskipun Tom diberikan izin operasi layanan, melihat, dan operasi untuk plugin kustom di semua grup gateway, dia akan menemukan dirinya tidak memiliki izin untuk mengedit plugin kustom. Ini karena kita telah menetapkan batasan izin untuk Tom. Kecuali batasan izin disesuaikan untuk memasukkan izin terkait plugin kustom, izin tambahan apa pun di luar batasan tersebut tidak akan berlaku.
Bagaimana Menggunakan Fitur Batasan Izin?
Membuat Kebijakan Izin
Batasan izin dapat langsung menggunakan kembali kebijakan izin dalam sistem. Sebelum menetapkan batasan izin kepada pengguna, Anda perlu membuat kebijakan izin. Klik "Kebijakan Izin" di menu organisasi sistem untuk masuk ke halaman daftar.
Kemudian, klik "Tambah Kebijakan Izin" di sudut kanan atas daftar untuk masuk ke formulir pembuatan.

Isi informasi dasar kebijakan izin dalam formulir dan konfigurasikan pernyataan kebijakan yang sesuai untuk membuat kebijakan izin. Secara teori, kebijakan izin yang sama dapat dikaitkan dengan beberapa peran dan digunakan sebagai batasan izin untuk beberapa pengguna, tetapi praktik ini tidak direkomendasikan.

Untuk pengenalan konseptual lebih lanjut tentang kebijakan izin, lihat artikel Apa yang Baru di API7 Enterprise 3.4.14: IAM untuk Kontrol Akses Granular. Untuk contoh konfigurasi kebijakan umum, lihat dokumen Contoh Kebijakan Izin. Untuk nilai yang dapat diambil oleh sumber daya dan tindakan serta API yang sesuai, lihat dokumen Tindakan dan Sumber Daya Kebijakan Izin.
Menetapkan Batasan Izin
Setelah membuat kebijakan izin, Anda dapat menetapkan batasan izin. Klik "Pengguna" di menu organisasi untuk masuk ke halaman daftar pengguna.
Kita dapat langsung menetapkan batasan izin kepada pengguna baru saat mengundang mereka. Formulir undangan mencakup bidang baru untuk batasan izin, dan pengguna akan diberi batasan izin ini secara default saat masuk ke sistem.
Untuk pengguna yang sudah ada, Anda dapat mengklik ikon pengeditan batasan izin pada halaman detail pengguna untuk mengonfigurasi batasan izin mereka.
Saat mengonfigurasi izin untuk pengguna, Anda dapat menambahkan kondisi permission_boundaries ke izin operasi tertentu. Misalnya, dalam tindakan iam:InviteUser (mengundang pengguna) atau iam:UpdateUserBoundary (memperbarui batasan izin pengguna), Anda dapat lebih menyempurnakan kontrol izin dengan menambahkan kondisi permission_boundaries.
Di bawah kondisi ini, Anda dapat menentukan ID kebijakan izin yang harus ditetapkan untuk pengguna. Dengan demikian, saat melakukan operasi seperti mengundang pengguna baru atau memperbarui batasan izin pengguna lain, sistem akan memaksa alokasi batasan izin yang sesuai berdasarkan aturan yang telah ditetapkan sebelumnya.
Berikut adalah contoh yang menunjukkan cara mencapai ini:
{ "statement": [ { "effect": "allow", "resources": ["arn:api7:iam:user/<.*>"], "actions": [ "iam:InviteUser", "iam:UpdateUserBoundary" ], "conditions": { "permission_boundaries": { "type": "AllOfStrings", "options": [ "d3698967-1d28-4e37-b5e7-ef00a93304cc", "f863a233-f732-4af0-bb21-3fbe4013be69" ] } } } ] }
Pemetaan Batasan Izin
Selain mengonfigurasi batasan izin tertentu secara langsung dalam sistem, API7 Enterprise juga mendukung Pemetaan Batasan Izin, yang secara otomatis menetapkan batasan izin yang sesuai berdasarkan identitas dan izin pengguna di IdP (Penyedia Identitas). Pada halaman pengaturan organisasi, klik "Tambahkan Opsi Masuk". Terlepas dari penyedia yang dipilih, tombol "Pemetaan Batasan Izin" ditambahkan di bagian bawah formulir konfigurasi. Setelah diaktifkan, Anda dapat mengonfigurasi pemetaan batasan izin.

-
Kebijakan Izin: Ini adalah sumber daya kebijakan izin yang didefinisikan dalam API7 Enterprise, digunakan untuk mengontrol akses pengguna dan cakupan operasi. Dalam pemetaan batasan izin, kita dapat memetakan konfigurasi dari IdP eksternal ke batasan izin ini untuk menetapkan batasan izin yang sesuai kepada pengguna saat masuk.
-
Atribut Batasan Izin yang Dipetakan: Pengidentifikasi untuk informasi batasan izin pengguna yang dikembalikan oleh IdP, digunakan untuk menemukan data batasan izin pengguna dalam respons IdP. Misalnya, menentukan nama atribut seperti "role" atau "groups" akan memungkinkan sistem untuk mengekstrak nilai batasan izin dari respons IdP berdasarkan nama atribut ini.
-
Operasi: Metode yang digunakan untuk mencocokkan nilai batasan izin dari atribut batasan izin IdP. Berbagai metode didukung, seperti pencocokan tepat, pencocokan samar, pencocokan array, dll. Jika IdP mengembalikan array string dari nilai batasan izin, kita dapat memilih "Pencocokan Tepat dalam Array" untuk menemukan kecocokan.
-
Nilai Batasan Izin yang Dipetakan: Nilai spesifik yang mewakili batasan izin pengguna dalam IdP.
Ringkasan
Secara keseluruhan, batasan izin adalah alat penting untuk memastikan keamanan sistem dan mencegah penyalahgunaan izin. Dengan mendefinisikan cakupan izin pengguna secara jelas, kita dapat melindungi sumber daya sistem kunci dari akses yang tidak sah dan memastikan bahwa setiap pengguna hanya dapat beroperasi dalam rentang yang diizinkan. Dalam lingkungan sistem yang kompleks, memanfaatkan batasan izin secara efektif akan memberikan perlindungan yang kuat untuk keamanan data perusahaan.
