Apa yang Baru di API7 Enterprise: IAM untuk Kontrol Akses Granular
July 11, 2024
Pendahuluan
Versi sebelumnya dari API7 Enterprise menyediakan mekanisme manajemen RBAC (Role-Based Access Control) yang sederhana, ramah pengguna, dan komprehensif. Mekanisme ini memastikan keamanan sistem sambil memberikan pengguna fleksibilitas dalam konfigurasi izin peran. Seiring dengan bertambahnya jenis sumber daya dan fitur API7 Enterprise, manajemen RBAC tradisional secara bertahap menunjukkan keterbatasannya dalam kontrol izin yang lebih rinci. Selain itu, semakin banyak perusahaan yang mencari strategi manajemen izin yang lebih halus untuk memenuhi kebutuhan bisnis yang kompleks dan berubah.
Untuk lebih meningkatkan fitur manajemen izin API7 Enterprise, kami telah melakukan peningkatan komprehensif pada sistem izin peran yang ada dengan memperkenalkan model kebijakan IAM (Identity and Access Management) yang lebih fleksibel dan kuat. Model ini memberikan pengguna kontrol izin yang lebih rinci dan fleksibilitas yang lebih besar, sehingga lebih memenuhi kebutuhan manajemen izin yang kompleks dan berubah dari perusahaan modern.
Apa Itu Model Kebijakan IAM?
Model IAM (Identity and Access Management) merupakan metode manajemen izin yang lebih rinci dan efisien. Ini memungkinkan administrator untuk mendefinisikan kebijakan tertentu, di mana setiap kebijakan berisi seperangkat aturan (Statements). Aturan ini secara rinci menentukan pengguna atau peran mana yang dapat melakukan tindakan apa pada sumber daya mana. Dibandingkan dengan mekanisme RBAC tradisional, model ini menawarkan fleksibilitas dan granularitas yang lebih besar.
Keunggulan IAM dibandingkan RBAC:
-
Kontrol Granular: IAM dapat mengontrol izin pada tingkat sumber daya dan bahkan untuk atribut atau operasi tertentu dalam sumber daya, sedangkan RBAC sering kali menetapkan izin berdasarkan peran, dengan granularitas yang relatif kasar.
-
Fleksibilitas: IAM memungkinkan administrator untuk mengelola kebijakan dan izin secara langsung tanpa perlu membuat dan mengelola banyak peran untuk penugasan izin tidak langsung, sehingga konfigurasi menjadi lebih langsung dan fleksibel.
-
Skalabilitas: Seiring dengan peningkatan fungsionalitas sistem dan diversifikasi jenis sumber daya, IAM dapat lebih mudah beradaptasi dengan perubahan dengan menambahkan kebijakan baru untuk memenuhi kebutuhan izin baru, sementara RBAC mungkin memerlukan penyesuaian atau penambahan banyak peran untuk mengakomodasi perubahan.
Bagaimana Menggunakan Kebijakan IAM di API7 Enterprise?
1. Membuat Kebijakan Izin
Setelah masuk ke API7 Enterprise, klik tombol "Organization" di kanan atas, dan pilih item menu "Permission Policies" dari menu dropdown.
Di bagian Permission Policies, Anda dapat mengelola semua kebijakan. Secara default, ada super-admin-permission-policy untuk administrator awal.
Klik tombol "Add Policy" di kanan atas untuk memasuki formulir pembuatan kebijakan. Di sini, Anda perlu mengisi informasi dasar Kebijakan dan mengkonfigurasi izin di Editor Kebijakan, yang disebut sebagai Statements.
Statements adalah komponen inti dari sebuah kebijakan, terdiri dari satu atau lebih pernyataan. Setiap pernyataan mendefinisikan aturan izin akses tertentu.
-
Effect: Menentukan efek dari pernyataan, biasanya
"Allow"atau"Deny". Sebuah sumber daya dapat dipengaruhi oleh beberapa kebijakan, dan sistem IAM menentukan izin akses akhir berdasarkan urutan dan logika dari pernyataan. -
Action: Mendefinisikan serangkaian tindakan yang diizinkan atau dilarang, seperti
"gateway:DeleteGatewayGroup"atau"iam:GetUser". Tindakan ini harus digunakan bersama dengan sumber daya (Resource) agar bermakna. -
Resource: Menentukan sumber daya yang berlaku untuk pernyataan tersebut, seperti grup gateway tertentu atau layanan. Wildcard (misalnya,
<.*>) dapat digunakan untuk mencocokkan beberapa sumber daya. -
Condition (opsional): Mendefinisikan kondisi di mana pernyataan akan efektif. Misalnya,
"conditions": { "gateway_group_label": { "type": "MatchLabel", "options": { "key": "type", "operator": "exact_match", "value": "production" } } },Ini menunjukkan bahwa operasi yang didefinisikan dalam pernyataan diizinkan untuk efektif hanya ketika label grup gateway diatur ke "production".
Sebagai contoh, untuk membuat kebijakan yang membatasi pengguna hanya dapat mengedit semua layanan yang dipublikasikan dalam grup gateway tertentu, Anda dapat menulisnya sebagai berikut:
{ "statement": [ { "resources": [ "arn:api7:gateway:gatewaygroup/{gateway group id}" ], "actions": [ "<.*>Get<.*>" // Izinkan menjalankan semua operasi yang dimulai dengan 'Get', yang mewakili izin 'baca' untuk grup gateway yang ditentukan ], "effect": "allow" // Izinkan menjalankan operasi yang didefinisikan di atas // Catatan: Pernyataan kebijakan ini memungkinkan melakukan semua operasi 'Get' pada grup gateway yang ditentukan, seperti mengambil informasi grup gateway, mencantumkan layanan dalam grup gateway, dll. }, { "resources": [ "arn:api7:gateway:gatewaygroup/{gateway group id}/publishedservice/<.*>", ], "actions": [ "<.*>" // Izinkan menjalankan semua operasi ], "effect": "allow" // Izinkan menjalankan operasi yang didefinisikan di atas // Pernyataan kebijakan ini memungkinkan melakukan semua operasi (buat, baca, perbarui, hapus, dll.) pada layanan yang dipublikasikan dalam grup gateway yang ditentukan. } ] }
Dalam contoh ini, kami mendefinisikan dua set sumber daya (grup gateway dan layanan yang dipublikasikan dalam grup gateway) dan menetapkan tindakan yang diizinkan untuk masing-masing. Beberapa contoh konfigurasi kebijakan umum dapat ditemukan di dokumen Contoh Kebijakan Izin. Untuk nilai yang tersedia dari sumber daya dan tindakan serta API yang sesuai, lihat dokumen Tindakan dan Sumber Daya Kebijakan Izin.
Setelah membuat kebijakan, kebijakan tersebut tidak dapat langsung ditugaskan kepada pengguna; kita perlu menugaskan kebijakan tersebut ke peran tertentu terlebih dahulu.
2. Membuat Peran dan Menambahkan Kebijakan
Setelah masuk ke API7 Enterprise, klik tombol "Organization" di kanan atas, dan pilih item menu "Roles" dari menu dropdown.
Di bagian Roles, Anda dapat mengelola semua peran. Secara default, ada peran Super Admin sebagai peran administrator bawaan.

Klik tombol "Add Custom Role" di kanan atas untuk memasuki formulir pembuatan peran. Di sini, Anda perlu mengisi informasi dasar peran. Setelah pembuatan, kita akan memasuki halaman detail peran.

Di halaman detail peran, klik tombol "Attach Policy" untuk menugaskan kebijakan izin yang sebelumnya dibuat ke peran.
Kebijakan yang dibuat dapat digunakan kembali di beberapa peran. Ketika sebuah peran dikaitkan dengan beberapa kebijakan, kebijakan ini digabungkan secara default. Artinya, izin dari sebuah peran adalah jumlah dari izin yang dinyatakan dalam semua kebijakan yang terkait. Setelah membuat peran dan menambahkan kebijakan, kita dapat menugaskan peran tersebut kepada pengguna tertentu.
3. Menugaskan Peran kepada Pengguna
Setelah masuk ke API7 Enterprise, klik tombol "Organization" di kanan atas, dan pilih item menu "Users" dari menu dropdown.
Di bagian Users, Anda dapat mengelola semua pengguna. Secara default, ada peran admin sebagai administrator bawaan.

Di kolom aksi sebelah kanan daftar peran, klik "Update Roles" untuk membuka laci formulir untuk memperbarui peran pengguna tertentu.
Seorang pengguna dapat memiliki beberapa peran. Ketika seorang pengguna diberikan beberapa peran, izin tersebut digabungkan. Artinya, pengguna memiliki jumlah izin dari semua peran.
Pemetaan Peran yang Disederhanakan
Dengan optimasi dan peningkatan model peran pengguna, proses pemetaan peran SSO telah disederhanakan. Sekarang, saat mengkonfigurasi pemetaan peran untuk opsi login, tidak perlu lagi menetapkan aturan pencocokan tingkat sumber daya untuk setiap peran secara individual. Izin sumber daya dan operasi langsung diwarisi dari peran bawaan yang dipilih, membuat konfigurasi izin lebih intuitif dan menyederhanakan kompleksitas manajemen izin.
Kesimpulan
Pengenalan kebijakan IAM telah memungkinkan konfigurasi dan manajemen izin yang lebih fleksibel. Penyesuaian ini tidak hanya meningkatkan keamanan sistem tetapi juga memberikan pengguna kemungkinan kustomisasi yang lebih besar.
Di masa depan, kami akan terus memperluas jenis sumber daya yang didukung oleh kebijakan IAM, memastikan bahwa semua sumber daya sistem dapat dimasukkan dalam manajemen izin yang lebih rinci, dan terus mengoptimalkan antarmuka pengeditan dan manajemen kebijakan, membawa pengalaman manajemen izin yang lebih komprehensif dan efisien kepada pengguna.
