26 lines
3.3 KiB
Markdown
26 lines
3.3 KiB
Markdown
Pour que ton application puisse lister les ressources et modifier les descriptions des VMs sans compromettre la sécurité de ton infrastructure, il ne faut surtout pas utiliser le compte root@pam.Nous allons créer un utilisateur dédié (api-visualizer@pve) et lui associer un API Token avec les privilèges minimaux nécessaires (Moindre privilège).Voici le tutoriel pas à pas à réaliser sur ton Proxmox à l'adresse https://10.0.3.203:8006.
|
|
# 🛠️ Étape 1 : Créer le rôle personnalisé (Optionnel mais recommandé)
|
|
Par défaut, Proxmox propose le rôle PVEVMAdmin, mais il donne trop de droits (allumer/éteindre, supprimer des VMs, etc.). Nous allons créer un rôle sur-mesure qui ne permet que de lire et de modifier les configurations (pour les notes).Connecte-toi à l'interface web de ton Proxmox (https://10.0.3.203:8006).Va dans Datacenter (tout en haut de l'arbre à gauche) $\rightarrow$ Permissions $\rightarrow$ Roles.Clique sur Create.Nomme le rôle : VM-Visualizer.Dans le champ Privileges, coche exactement ces cases :VM.Audit (Pour voir et lister les VMs/LXCs)VM.Config.Options (Pour pouvoir modifier le champ description/notes)Sys.Audit (Pour voir l'état des nœuds et du cluster)Clique sur Create.
|
|
# 👥 Étape 2 : Créer l'utilisateur API
|
|
Reste dans Datacenter $\rightarrow$ Permissions $\rightarrow$ Users.Clique sur Add.Remplis les champs suivants :User name : api-visualizerRealm : pve (Proxmox VE authentication)Password : Mets un mot de passe robuste (il servira uniquement à valider la création du token).Clique sur Add.
|
|
# 🔑 Étape 3 : Générer l'API Token
|
|
Le Token permettra à ton script FastAPI de s'authentifier sans utiliser de mot de passe.Reste dans Datacenter $\rightarrow$ Permissions $\rightarrow$ API Tokens.Clique sur Add.Sélectionne l'utilisateur : api-visualizer@pve.Token ID : visualizer-token (ou le nom de ton choix).⚠️ Décoche impérativement la case Privilege Separation. Si tu la laisses cochée, le token aura des restrictions supplémentaires complexes à gérer. En la décochant, le token hérite exactement des droits qu'on va donner à l'utilisateur.Clique sur Add.🔴 ATTENTION : Une boîte de dialogue s'ouvre avec le Token ID et la Secret Value. Copie immédiatement la "Secret Value", car elle ne sera plus jamais affichée !
|
|
# 🛡️ Étape 4 : Assigner les permissions
|
|
Maintenant, il faut dire à Proxmox où cet utilisateur a le droit d'agir (sur tout le datacenter).Reste dans Datacenter $\rightarrow$ Permissions.Clique sur Add $\rightarrow$ User Permission.Remplis les champs :Path : / (Cela signifie tout le Proxmox : nœuds, VMs, LXCs).User : api-visualizer@pve.Role : VM-Visualizer (Le rôle créé à l'étape 1).Propagate : Coché (pour que ça s'applique à toutes les sous-ressources).Clique sur Add.
|
|
# 📝 Étape 5 : Intégration dans ton fichier .env
|
|
Maintenant que tu as ton Token, voici comment tu dois remplir le fichier backend/.env dans VS Code pour ce serveur spécifique :Extrait de code
|
|
```bash
|
|
API_ENV=development
|
|
API_PORT=8000
|
|
|
|
# Remplace par tes vraies valeurs récupérées à l'étape 3
|
|
PROXMOX_SERVERS='[
|
|
{
|
|
"name": "PVE-203",
|
|
"url": "https://10.0.3.203:8006",
|
|
"token_name": "api-visualizer@pve!visualizer-token",
|
|
"token_value": "993a4bc2-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
|
}
|
|
]'
|
|
```
|
|
Une fois cette configuration faite, ton Proxmox est prêt et sécurisé |