Peran & Izin
Pahami cara kerja peran dan izin di ARSAKA PUGUH.
Role-Based Access Control (RBAC)
PUGUH menggunakan RBAC untuk mengelola apa yang dapat dilakukan pengguna. Setiap pengguna memiliki tepat satu role per organisasi, dan role menentukan izin akses mereka.
Role Bawaan
Owner
Tingkat akses tertinggi. Setiap organisasi memiliki tepat satu owner.
Kemampuan:
- Semua izin akses
- Manajemen billing dan subscription
- Hapus organisasi
- Transfer kepemilikan
Admin
Akses manajemen penuh tanpa billing.
Kemampuan:
- Buat, edit, hapus semua resource
- Kelola pengguna dan role
- Konfigurasi pengaturan organisasi
- Tidak bisa mengakses billing
- Tidak bisa menghapus organisasi
Member
Pengguna standar untuk pekerjaan sehari-hari.
Kemampuan:
- Buat dan kelola webhook
- Lihat semua resource
- Tidak bisa menghapus resource
- Tidak bisa mengelola pengguna
Viewer
Akses hanya baca untuk pengamat.
Kemampuan:
- Lihat semua resource
- Tidak bisa melakukan perubahan apa pun
- Tidak bisa membuat atau memodifikasi resource
Sistem Izin Akses
Izin akses mengikuti format:
{domain}.{resource}.{action} Contoh
| Permission | Arti |
|---|---|
webhook.endpoints.create | Membuat webhook endpoint |
webhook.endpoints.delete | Menghapus webhook endpoint |
iam.users.invite | Mengundang pengguna baru |
organization.settings.update | Memperbarui pengaturan organisasi |
control.audit.view | Melihat audit log |
Daftar Domain
| Domain | Resource |
|---|---|
iam | users, roles, permissions, service-accounts |
organization | settings, members, applications |
webhook | endpoints, deliveries |
control | audit, events, metrics, dlq |
billing | subscription, invoices, payment-methods |
storage | files, buckets |
Matriks Izin Akses
Navigasi ke IAM > Permissions untuk melihat matriks izin akses lengkap.
- Semua izin akses yang tersedia
- Role mana yang memiliki izin apa
- Izin akses efektif untuk setiap pengguna
Custom Roles (Pro/Enterprise)
Paket Pro dan Enterprise dapat membuat custom role dengan izin akses spesifik.
Membuat Custom Role
- Buka IAM > Roles
- Klik "Create Role"
- Masukkan nama dan deskripsi role
- Pilih izin akses yang akan disertakan
- Klik "Create"
Contoh Custom Role
Webhook Manager Role
webhook.endpoints.viewwebhook.endpoints.createwebhook.endpoints.updatewebhook.endpoints.deletewebhook.deliveries.view
Application Manager Role
organization.applications.vieworganization.applications.createorganization.applications.updateorganization.applications.delete
Auditor Role
control.audit.viewcontrol.events.viewcontrol.metrics.view
Pewarisan Role
PUGUH menggunakan model role flat - role tidak mewarisi dari satu sama lain. Setiap role secara eksplisit mendefinisikan izin aksesnya.
Ini berarti:
- Tidak ada izin tersembunyi dari parent role
- Mudah memahami apa yang bisa dilakukan setiap role
- Tidak ada rantai pewarisan yang kompleks
Pengecekan Izin API
Saat melakukan panggilan API, izin akses diperiksa:
// This will fail if user lacks webhook.endpoints.create
const response = await client.webhooks.create({
url: 'https://example.com/hook',
eventTypes: ['organization.created'],
});
// Error response if lacking permission:
// { "error": "PERMISSION_DENIED", "message": "Missing permission: webhook.endpoints.create" } Memeriksa Izin di Kode
import { PuguhClient } from '@arsaka/puguh-sdk';
// Check if user has a specific permission
const canCreate = await client.hasPermission('webhook.endpoints.create');
if (canCreate) {
// Show create button
}
// Get all user permissions
const permissions = await client.getPermissions();
console.log(permissions);
// ['webhook.endpoints.view', 'webhook.endpoints.create', ...] Praktik Terbaik
- Mulai dengan Terbatas: Gunakan role Viewer secara default, tingkatkan sesuai kebutuhan
- Tinjau Secara Berkala: Audit siapa yang punya akses apa setiap kuartal
- Dokumentasikan Custom Roles: Catat alasan pembuatan custom role
- Gunakan Service Accounts: Jangan berikan API key ke pengguna Admin
- Pisahkan Tanggung Jawab: Role berbeda untuk tanggung jawab berbeda
Pemecahan Masalah
Error "Permission Denied"
Jika pengguna melihat error izin akses:
- Periksa role mereka di IAM > Users
- Verifikasi role memiliki izin yang diperlukan di IAM > Roles
- Pastikan mereka berada di organisasi yang benar
- Periksa apakah mereka di-suspend
Tidak Bisa Mengubah Owner
Transfer kepemilikan memerlukan:
- Owner saat ini memulai transfer
- Owner baru menerima
- Owner baru harus seorang Admin