为了让用户执行操作(例如列出、修改或删除 VM 配置的一部分),用户需要具有适当的权限。
Proxmox VE 使用基于角色和路径的权限管理系统。权限表中的条目允许用户、组或令牌在访问对象或路径时承担特定角色。这意味着这样的访问规则可以表示为(path, user, role) , (path, group, role)或(path, token, role)的三元组,其中角色包含一组允许的操作,以及表示这些操作的目标的路径。
角色
角色只是一个特权列表。Proxmox VE 带有许多可满足大多数需求的预定义角色。
- Administrator:拥有所有权限
- NoAccess:没有权限(用于禁止访问)
- PVEAdmin:可以做大多数事情,但缺少修改系统设置的权限(Sys.PowerMgmt、Sys.Modify、Realm.Allocate)。
- PVEAuditor : 只读访问
- PVEDatastoreAdmin:创建和分配备份空间和模板
- PVEDatastoreUser:分配备份空间和查看存储
- PVEpoolAdmin : 分配池
- PVESysAdmin:用户 ACL、审计、系统控制台和系统日志
- PVETemplateUser:查看和克隆模板
- PVEUserAdmin:用户管理
- PVEVMAdmin:完全管理虚拟机
- PVEVMUser : 查看、备份、配置 CD-ROM、VM 控制台、VM 电源管理
您可以在 GUI 上看到整套预定义角色。
特权
特权是执行特定操作的权利。为了简化管理,权限列表被分组到角色中,然后可以在权限表中使用。请注意,权限不能直接分配给用户和路径,而不是角色的一部分。
我们目前使用以下权限:
节点/系统相关权限
- Permissions.Modify : 修改访问权限
- Sys.PowerMgmt:节点电源管理(启动、停止、重置、关闭……)
- Sys.Console:控制台访问节点
- Sys.Syslog : 查看系统日志
- Sys.Audit : 查看节点状态/配置、Corosync 集群配置和 HA 配置
- Sys.Modify : 创建/删除/修改节点网络参数
- Group.Allocate : 创建/删除/修改组
- Pool.Allocate:创建/删除/修改池
- Pool.Audit : 查看池
- Realm.Allocate:创建/删除/修改身份验证领域
- Realm.AllocateUser : 将用户分配给一个领域
- User.Modify:创建/删除/修改用户访问和详细信息。
虚拟机相关权限
- VM.Allocate:创建/删除新 VM 到服务器清单
- VM.Migrate:将 VM 迁移到集群上的备用服务器
- VM.PowerMgmt:电源管理(启动、停止、重置、关闭……)
- VM.Console:控制台访问 VM
- VM.Monitor : 访问 VM 监视器 (kvm)
- VM.Backup : 备份/恢复虚拟机
- VM.Audit : 查看 VM 配置
- VM.Clone : 克隆/复制虚拟机
- VM.Config.Disk : 添加/修改/删除磁盘
- VM.Config.CDROM : 弹出/更换 CD-ROM
- VM.Config.CPU : 修改 CPU 设置
- VM.Config.Memory : 修改内存设置
- VM.Config.Network : 添加/修改/删除网络设备
- VM.Config.HWType : 修改模拟硬件类型
- VM.Config.Options:修改任何其他 VM 配置
- VM.Snapshot : 创建/删除 VM 快照
存储相关权限
- Datastore.Allocate:创建/删除/修改数据存储,删除卷
- Datastore.AllocateSpace:在数据存储上分配空间
- Datastore.AllocateTemplate:分配/上传模板和 iso 图像
- Datastore.Audit:查看/浏览数据存储