Gestión de Roles

Aqui se enumeran las tareas más comunes para administrar roles en Proxmox (PVE). Todos los comandos se basan en la utilidad pveum (Proxmox User Manager) y deben ejecutarse como root o mediante sudo.

Listar Roles Existentes

Para listar todos los roles definidos en el sistema:

pveum role list

Esto muestra tanto los roles integrados como los personalizados.

Mostrar Privilegios Asignados a un Rol

Para inspeccionar qué privilegios están asignados a un rol:

pveum role list | grep <nombre_rol>

Para una salida legible por máquina:

pveum role list --output-format json

Ejemplo:

pveum role list --output-format json | jq '.[] | select(.roleid=="MiRolPersonalizado")'

Listar Todos los Privilegios Disponibles

Para ver todos los privilegios que se pueden asignar a los roles:

pveum role list-privileges

Esto es esencial al diseñar roles personalizados con el mínimo privilegio.

Crear un Rol Personalizado

Los roles se utilizan para definir un conjunto de permisos para los usuarios y grupos a los que se asigna este rol.

pveum role add <nombre-rol> -privs <privilegios>

Donde:

  • <nombre-rol> es el nombre del rol a crear.

  • -privs <privilegios>, deben estar separados por espacios y encerrados entre comillas.

Ejemplo:

pveum role add gestor-vm -privs "VM.PowerMgmt VM.Config.CDROM"

Este comando crea un rol llamado gestor-vm con permisos para administrar la configuración de energía de la VM y configurar CD-ROM.

Modificar un Rol Existente

Para reemplazar todos los privilegios de un rol existente:

pveum role modify MiRolPersonalizado -privs "VM.PowerMgmt VM.Config.Disk"

Esta operación sobrescribe el conjunto de privilegios anterior.

Clonar un Rol Existente

Para duplicar un rol (común al extender roles integrados):

pveum role add MiNuevoRol -clone PVEVMUser

Luego puede modificar el rol clonado según sea necesario.

Eliminar un Rol Personalizado

Para eliminar un rol:

pveum role delete MiRolPersonalizado

Nota: - El rol no debe estar asignado a ningún usuario o token de API.

Asignar un Rol a un Usuario o Grupo

Asignar a un Usuario

pveum acl modify /vms/100 -user usuario@pam -role MiRolPersonalizado

Asignar a un Grupo

pveum acl modify / -group MiGrupo -role MiRolPersonalizado

Revisar las Asignaciones de ACL

Para listar todas las ACL:

pveum acl list

Para filtrar por usuario:

pveum acl list | grep usuario@pam

Probar Permisos Efectivos

Si bien no existe un comando directo de «permisos efectivos», puede validar el acceso mediante:

  • Iniciar sesión como el usuario

  • Usar un token de API vinculado al rol

  • Intentar operaciones restringidas (por ejemplo, inicio de VM, acceso a la consola)

Copia de Seguridad y Restauración de la Configuración de Roles

Los roles y las ACL se almacenan en:

/etc/pve/user.cfg

Para hacer una copia de seguridad:

cp /etc/pve/user.cfg /root/user.cfg.backup

Restaurar este archivo (en todo el clúster) restaura los roles, los usuarios y las ACL.

Consideraciones

  • Los cambios en los privilegios de los roles son inmediatos y en todo el clúster

  • Modificar un rol afecta a todos los usuarios que utilizan ese rol

  • Siempre probar los roles personalizados con usuarios que no sean de producción

  • Usar list-privileges con frecuencia para evitar el exceso de permisos