· Henning Scholand · Proxmox · 2 Min. Lesezeit
RBAC in Proxmox — Benutzer, Rollen und Active Directory Integration
Proxmox hat ein vollständiges RBAC-System. Wie Realms, Rollen und Berechtigungspfade funktionieren, Active Directory angebunden wird und API-Tokens sicher vergeben werden.

Proxmox bringt ein vollständiges Role-Based Access Control System mit. Wer trotzdem alle Admins als root@pam betreibt, verschenkt Auditierbarkeit und verletzt das Least-Privilege-Prinzip.
Das Rechte-Modell verstehen
Proxmox kombiniert drei Dimensionen:
- User/Group: Wer darf
- Role: Was darf er (Bündel von Privileges)
- Path: Worauf darf er es (z.B.
/vms/101oder/storage/local-lvm)
pveum acl modify <path> --roles <role> --users <user> --groups <group>Built-in Rollen
| Rolle | Typischer Einsatz |
|---|---|
Administrator | Voller Zugriff — sparsam vergeben |
PVEVMAdmin | VMs verwalten, kein Node-Zugriff |
PVEVMUser | VMs starten/stoppen, Konsole |
PVEDatastoreAdmin | Storage verwalten |
PVEAuditor | Read-only überall |
Custom Role erstellen
# Rolle für Helpdesk: VMs starten/stoppen, Konsole öffnen, kein Löschen
pveum role add Helpdesk \
--privs "VM.PowerMgmt,VM.Console,VM.Audit"
# Verfügbare Privileges auflisten
pveum role list
pveum privlistLokale User anlegen und Rechte vergeben
# User anlegen (pve-Realm = lokale Proxmox-Authentifizierung)
pveum user add max.mustermann@pve \
--comment "IT-Admin" \
--email max@example.com \
--password SecurePass123!
# Zugriff nur auf VMs im Pool "Kunden-A"
pveum pool add Kunden-A
pveum pool modify Kunden-A --vms 100,101,102
pveum acl modify /pool/Kunden-A \
--roles PVEVMAdmin \
--users max.mustermann@pveActive Directory / LDAP anbinden
# LDAP-Realm anlegen (Active Directory)
pveum realm add ad-corp \
--type ad \
--domain corp.example.com \
--server1 10.0.1.10 \
--server2 10.0.1.11 \
--port 636 \
--secure 1 \
--default 0 \
--comment "Corporate AD"
# Realm testen und User synchronisieren
pveum realm sync ad-corp --enable-new 1 --purge 0 --scope usersAD-Benutzer nach dem Sync:
# AD-Benutzer anzeigen
pveum user list | grep @ad-corp
# Gruppe aus AD mit Rolle verknüpfen
pveum group add admins-ad --comment "AD Admins Gruppe"
pveum acl modify / --roles Administrator --groups admins-ad
# Gruppen aus AD synchronisieren
pveum realm sync ad-corp --scope groupsAPI-Tokens mit Least-Privilege
Für Automation (Terraform, Ansible, Monitoring) niemals Root-Credentials verwenden:
# Token für Terraform anlegen
pveum user add terraform@pve --comment "Terraform Automation"
pveum role add TerraformRole \
--privs "VM.Allocate,VM.Clone,VM.Config.CDROM,VM.Config.CPU,VM.Config.Cloudinit,VM.Config.Disk,VM.Config.HWType,VM.Config.Memory,VM.Config.Network,VM.Config.Options,VM.Monitor,VM.Audit,VM.PowerMgmt,Datastore.AllocateSpace,Datastore.Audit"
pveum acl modify / --roles TerraformRole --users terraform@pve
# API-Token erstellen (nur einmal angezeigt!)
pveum user token add terraform@pve terraform-token \
--privsep 1 \
--comment "Terraform CI/CD"
# Output: terraform@pve!terraform-token=<uuid>2FA für alle erzwingen
# TFA-Pflicht für den lokalen pve-Realm
pveum realm modify pve --tfa type=totp
# Alle User ohne TFA anzeigen
pveum user list -o json | python3 -c "
import json,sys
users = json.load(sys.stdin)['data']
for u in users:
if not u.get('keys'):
print(u['userid'], '— kein TFA!')
"Im nächsten Block geht es um Backup und Disaster Recovery — aufbauend auf der gesicherten Umgebung aus den ersten sechs Artikeln.



