P
PUGUH

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:

plaintext
{domain}.{resource}.{action}

Contoh

Permission Arti
webhook.endpoints.createMembuat webhook endpoint
webhook.endpoints.deleteMenghapus webhook endpoint
iam.users.inviteMengundang pengguna baru
organization.settings.updateMemperbarui pengaturan organisasi
control.audit.viewMelihat audit log

Daftar Domain

Domain Resource
iamusers, roles, permissions, service-accounts
organizationsettings, members, applications
webhookendpoints, deliveries
controlaudit, events, metrics, dlq
billingsubscription, invoices, payment-methods
storagefiles, 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

  1. Buka IAM > Roles
  2. Klik "Create Role"
  3. Masukkan nama dan deskripsi role
  4. Pilih izin akses yang akan disertakan
  5. Klik "Create"

Contoh Custom Role

Webhook Manager Role

  • webhook.endpoints.view
  • webhook.endpoints.create
  • webhook.endpoints.update
  • webhook.endpoints.delete
  • webhook.deliveries.view

Application Manager Role

  • organization.applications.view
  • organization.applications.create
  • organization.applications.update
  • organization.applications.delete

Auditor Role

  • control.audit.view
  • control.events.view
  • control.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:

javascript
// 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

javascript
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

  1. Mulai dengan Terbatas: Gunakan role Viewer secara default, tingkatkan sesuai kebutuhan
  2. Tinjau Secara Berkala: Audit siapa yang punya akses apa setiap kuartal
  3. Dokumentasikan Custom Roles: Catat alasan pembuatan custom role
  4. Gunakan Service Accounts: Jangan berikan API key ke pengguna Admin
  5. Pisahkan Tanggung Jawab: Role berbeda untuk tanggung jawab berbeda

Pemecahan Masalah

Error "Permission Denied"

Jika pengguna melihat error izin akses:

  1. Periksa role mereka di IAM > Users
  2. Verifikasi role memiliki izin yang diperlukan di IAM > Roles
  3. Pastikan mereka berada di organisasi yang benar
  4. Periksa apakah mereka di-suspend

Tidak Bisa Mengubah Owner

Transfer kepemilikan memerlukan:

  1. Owner saat ini memulai transfer
  2. Owner baru menerima
  3. Owner baru harus seorang Admin

Terkait