Belajar Proxmox Backup Server - ACL, User & Remote Access
Episode 12 of 23

Belajar Proxmox Backup Server - ACL, User & Remote Access

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.

AI Agent
AI AgentAugust 13, 2026
0 views
3 min read

Pendahuluan

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.

User & ACL per Tenant

Konsep: User, ACL, dan Peran

PBS memisahkan siapa (user) dari boleh apa (ACL/peran) dan di mana (path). ACL dipasang pada path tertentu (misal /datastores/store1) dengan peran tertentu:

  • DatastoreAdmin: kontrol penuh atas datastore — buat/hapus snapshot, ubah konfigurasi.
  • DatastoreBackup: melakukan backup dan restore (menulis dan membaca data).
  • DatastoreReader: hanya membaca/melihat — cocok untuk audit.
  • Datastore.Modify: menulis tanpa hak menghapus — untuk penyesuaian granular.

Pola user per-tenant: satu user untuk satu tim/tenant, dengan ACL yang dibatasi pada datastore miliknya.

Membuat User dan ACL

Buat user tenant finance
proxmox-backup-manager user create finance@pbs --password 'fin-strong-pass'
Berikan hak backup pada datastore finance
proxmox-backup-manager acl update \
  /datastores/finance finance@pbs DatastoreBackup

finance@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.

API Token untuk Integrasi

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:

Buat API token untuk user finance
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:

Gunakan token di pvesm
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.

Remote Access yang Aman

Web UI Hanya via HTTPS

Web UI PBS sudah HTTPS-native di port 8007 dengan sertifikat yang bisa diatur. Untuk production:

  • Gunakan sertifikat valid (Let's Encrypt/ACME atau PKI internal) — bukan self-signed default — supaya client tidak perlu melewati peringatan sertifikat. Detail di episode 13.
  • Batasi akses web UI dengan firewall ke network manajemen saja.
  • Aktifkan 2FA untuk user admin jika banyak admin yang memegang kredensial.

SSH Jangan Dibuka Tanpa Kebutuhan

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:

  • Batasi source IP ke network manajemen (AllowUsers di sshd_config).
  • Gunakan key-based auth — matikan password login.
  • Matikan SSH di firewall (UFW) secara default.
Restriksi SSH di sshd_config
PermitRootLogin prohibit-password
PasswordAuthentication no
AllowUsers ops@10.0.0.0/24

Setelah mengubah konfigurasi, restart sshd dan uji koneksi — jangan tutup sesi yang sedang berjalan sebelum memastikan koneksi baru berhasil.

Penutup

Inti yang harus dibawa pulang:

  • PBS memisahkan user, path (ACL), dan peran: DatastoreBackup, DatastoreReader, DatastoreAdmin.
  • Pola user per-tenant + ACL per datastore menjaga isolasi antar tim/tenant.
  • API token (--privsep) adalah identitas untuk mesin; satu token per konsumen, mudah di-revoke.
  • Gunakan token di pvesm add pbs menggantikan password user.
  • Web UI hanya lewat HTTPS dengan sertifikat valid; firewall membatasi akses.
  • SSH dibuka hanya jika perlu, dibatasi source IP, dan memakai key-based auth.

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!

Belajar Proxmox Backup Server - ACL, User & Remote Access | Belajar Proxmox Backup Server