🔑 API-Token in Proxmox erstellen

title:: "ChatGPT" source:: "https://chatgpt.com/c/68b16db1-0144-8322-86c2-76a0c43f9e30" author:: [[ChatGPT]] published:: created:: 2025-08-29 description:: "ChatGPT hilft dir, Antworten zu finden, dich inspirieren zu lassen und produktiver zu sein. Du kannst es ganz einfach kostenlos ausprobieren. Stelle irgendeine Frage und ChatGPT kann dir beim Schreiben, Lernen, Ideensammeln und mehr helfen." tags:: clippings

1. Anmelden

2. Benutzer auswählen

3. Token anlegen

4. Rechte vergeben

5. Token-Secret notieren


🎯 Ergebnis

Im Script/Environment trägst du es so ein:

export PMX_HOST="proxmox.dein.tld:8006"
export PMX_USER="root@pam"
export PMX_TOKEN_NAME="md-gen"
export PMX_TOKEN_VALUE="xxxxxxxx-xxxx-xxxx-xxxx"
export VERIFY_SSL="true"

👉 Soll ich dir auch gleich ein Beispiel geben, wie du einen eigenen Service-User anlegst (anstatt root@pam zu benutzen)? Das ist meist die sicherere Variante.

Du:

ja bitte

ChatGPT:

Perfekt 👍 – einen eigenen Service-User zu verwenden ist deutlich sicherer als root@pam.
Hier die Schritte:


👤 Eigenen Proxmox Service-User mit API-Token erstellen

1. Benutzergruppe fĂĽr Automation anlegen

  1. In der WebGUI: Rechenzentrum → Berechtigungen → Gruppen.
  2. Gruppe hinzufügen – z. B. Name automation.

2. Benutzer anlegen

  1. Gehe zu Rechenzentrum → Berechtigungen → Benutzer.
  2. HinzufĂĽgen:
  1. Benutzer zur Gruppe automation hinzufĂĽgen.

3. Rechte fĂĽr die Gruppe vergeben

  1. Gehe zu Rechenzentrum → Berechtigungen → Berechtigungen.
  2. Hinzufügen → Gruppe Berechtigung:

👉 Damit kann der Account nur lesen, keine VM starten/stoppen.

4. API-Token fĂĽr den User erzeugen

  1. Wieder zu Rechenzentrum → Berechtigungen → Benutzer.
  2. Wähle den User automation@pve.
  3. Tab API Token → Hinzufügen:
  1. Nach dem Erstellen bekommst du:

5. Token ins Script eintragen

In deiner Shell/Umgebung:

export PMX_HOST="proxmox.dein.tld:8006"
export PMX_USER="automation@pve"
export PMX_TOKEN_NAME="md-gen"
export PMX_TOKEN_VALUE="xxxxxxxx-xxxx-xxxx-xxxx"
export VERIFY_SSL="true"

🚀 Vorteil


👉 Soll ich dir ein Rollenprofil bauen (z. B. VM.DokuLesen), das nur die minimal nötigen Rechte fürs Dokumentations-Skript hat? Dann kannst du es an den Automation-User binden, ohne zu viel freizugeben.

Du:

Ja bittte

ChatGPT:

Super — hier ist ein minimal sicheres Rollenprofil für dein Doku-Skript. Es erlaubt reines Lesen von Cluster/VM/Storage-Infos und (optional) QEMU-Guest-Agent-Abfragen für IPs.

🧩 Rolle „VM.DokuLesen“

Enthaltene Privilegien

Wenn du keine IPs via Guest-Agent brauchst, lass VM.Monitor weg.


Variante A: Klickpfad (GUI)

  1. Rechenzentrum → Berechtigungen → Rollen → Hinzufügen
  1. Rechenzentrum → Berechtigungen → Berechtigungen → Hinzufügen → Gruppe Berechtigung

(Du hast die Gruppe/den User automation@pve ja bereits erstellt.)


Variante B: CLI (schnell & reproduzierbar)

# Rolle anlegen (mit Guest-Agent-Recht)
pveum roleadd VM.DokuLesen -privs "Sys.Audit,PVEVM.Audit,Datastore.Audit,VM.Monitor"

# Falls ohne Guest-Agent:
# pveum roleadd VM.DokuLesen -privs "Sys.Audit,PVEVM.Audit,Datastore.Audit"

# Gruppe (falls noch nicht vorhanden)
pveum groupadd automation -comment "Automation Gruppe"

# User (falls noch nicht vorhanden)
# pveum useradd automation@pve -password <GEHEIM> -comment "Automation User"

# Rolle der Gruppe auf / zuweisen (Read-only, clusterweit)
pveum aclmod / -group automation -role VM.DokuLesen

Sicherheits-Hinweise


Wenn du willst, gebe ich dir noch eine „Härtungs-Checkliste“ (Self-Signed TLS, Token-Ablauf, engere ACL-Pfadwahl pro Pool/Node, Logging), die du einfach abarbeiten kannst.


Revision #1
Created 29 August 2025 10:55:03 by Ahorn
Updated 29 August 2025 10:58:59 by Ahorn