Episode ini mengatur akses multi-tenant: membuat user per-tenant, memasang ACL per datastore dengan peran Backup, Read, atau Write, dan membuat API token dengan izin terbatas untuk integrasi. Kalian juga mengamankan akses remote — web UI hanya lewat HTTPS yang valid, dan SSH tidak dibuka tanpa kebutuhan nyata.

Backup sudah meluas ke host dan container di episode 11 — kini ada pertanyaan operasional: siapa yang boleh mengakses apa. Di environment nyata, PBS tidak dipakai satu orang: tim infrastruktur, tim aplikasi, bahkan tenant berbeda memakai server yang sama. Episode 12 membangun ACL, user, dan remote access yang membuat PBS aman sekaligus mudah dikelola.
Bayangkan PBS seperti gedung kantor sewaan: setiap tenant punya lantai (datastore) sendiri, kartu akses (user/token) yang hanya membuka lantainya, dan tingkat izin berbeda — sebagian bisa menyimpan dan mengambil, sebagian hanya boleh melihat. Pintu utama gedung (HTTPS) terjaga, dan pintu belakang (SSH) tidak dibuka tanpa alasan.
PBS memisahkan siapa (user) dari boleh apa (ACL/peran) dan di mana (path). ACL dipasang pada path tertentu (misal /datastores/store1) dengan peran tertentu:
Pola user per-tenant: satu user untuk satu tim/tenant, dengan ACL yang dibatasi pada datastore miliknya.
proxmox-backup-manager user create finance@pbs --password 'fin-strong-pass'proxmox-backup-manager acl update \
/datastores/finance finance@pbs DatastoreBackupfinance@pbs sekarang bisa backup/restore di /datastores/finance, tapi tidak bisa melihat datastore lain. Dengan namespace (episode 11), granularitas bisa lebih halus lagi: /datastores/store1/finance memisahkan tenant dalam satu datastore fisik.
Note
Peran ACL tidak otomatis saling mewarisi: DatastoreReader tidak bisa meng-upgrade diri. Desain peran minimal — beri DatastoreBackup untuk tim operasional, DatastoreReader untuk auditor, dan simpan DatastoreAdmin hanya untuk admin infrastruktur.
Password user dipakai manusia; API token adalah identitas untuk mesin (PVE, sync job, script). Token mewarisi izin ACL user-nya dan bisa di-revoke kapan saja tanpa mengubah password user:
proxmox-backup-manager api-token create finance@pbs pve-backup --privsep--privsep (privilege separation) membatasi token hanya pada operasi yang diperlukan. Token ditampilkan sekali saja — simpan segera. Di PVE, token ini dipakai saat mendaftarkan PBS sebagai storage (episode 4) menggantikan password:
pvesm add pbs pbs1 --server 10.0.1.10 --datastore finance \
--username finance@pbs --password 'pbs-token=...' --fingerprint AA:BB:...Warning
Jangan memakai user root@pam dengan token yang punya akses penuh untuk semua integrasi. Satu token per konsumen (PVE cluster, sync job, script CI) memudahkan audit dan revoke — jika satu konsumen dikompromikan, kalian mencabut token-nya tanpa menyentuh yang lain.
Web UI PBS sudah HTTPS-native di port 8007 dengan sertifikat yang bisa diatur. Untuk production:
Ini aturan yang sering diabaikan: SSH PBS tidak perlu terbuka ke mana-mana. Administrasi harian PBS lewat web UI/API. Jika SSH benar-benar dibutuhkan:
AllowUsers di sshd_config).PermitRootLogin prohibit-password
PasswordAuthentication no
AllowUsers ops@10.0.0.0/24Setelah mengubah konfigurasi, restart sshd dan uji koneksi — jangan tutup sesi yang sedang berjalan sebelum memastikan koneksi baru berhasil.
Inti yang harus dibawa pulang:
DatastoreBackup, DatastoreReader, DatastoreAdmin.--privsep) adalah identitas untuk mesin; satu token per konsumen, mudah di-revoke.pvesm add pbs menggantikan password user.Di episode 13 selanjutnya kita akan memperkuat jaringan: network isolation & firewall — memisahkan VLAN storage, membatasi akses port 8007 hanya dari node PVE dengan UFW, dan mengelola sertifikat TLS (Let's Encrypt/PKI) lengkap dengan verifikasi fingerprint di sisi client. Backup adalah data paling berharga di jaringan kalian!