Хочу поднять тему предложения-обсуждения привилегий пользователей для VM, в связи с активной фазой разработки pve версии 8 и предстоящей 9.
1. VM.Config.Network: теперь эта привилегия позволяет изменять настройки/добавлять новые сетевые устройства, а также конфигурировать правила брандмауэра для VM. В моих задачах не хватает более тонкой детализации прав, я бы предложил что-то вроде этого:
* VM.Config.Network: добавление и изменение сетевых интерфейсов
* VM.Config.Network.Use: изменение существующих сетевых интерфейсов, за исключением изменения параметра firewall=[0|1]
* VM.Config.Firewall: управление брандмауэром
2. Добавить неявные права на проверку статуса VM (running | stopped) для всех "VM.\*" привилегий (get /nodes/{node}/qemu/{vmid}/status/current вернет только status=XXX). Может быть полезно для различных административных задач и для xtermjs|novnc
3. Права привилегий VM.\* без VM.Audit:
* Показывать VM в списке ресурсов, если назначены какие-либо привилегии VM.\* (получить доступные значения ресурсов: vmid, type, status, name, id, tags, node, template). Доступны вкладки настроек, соответствующие назначенным привилегиям
* VM.Console: доступна вкладка Console
* VM.Monitor, VM.Firewall, VM.Config.Options, VM.Backup, VM.Snapshot и т.д. — соответствующие вкладки доступны
* VM.Config.\* — доступна вкладка Hardware
4. В настоящее время права ресурсов являются кумулятивными (за исключением NoAccess). Но было бы неплохо иметь возможность "переопределять" права на отдельный ресурс, игнорируя наследование. В PVE есть флаг Propagate для назначения прав. Возможно, можно использовать флаг propagate=false для указания на переопределение прав на конечном ресурсе или добавить свой собственный флаг. Например, привилегия для конкретной VM с propagate=false и ролью PVEVMAudit переопределит права PVEVMAdmin, установленные на пуле.
5. Функции управления пользователями:
* Предотвратить изменение пароля/2FA пользователем
* Предотвратить создание API-токенов пользователем
1. VM.Config.Network: теперь эта привилегия позволяет изменять настройки/добавлять новые сетевые устройства, а также конфигурировать правила брандмауэра для VM. В моих задачах не хватает более тонкой детализации прав, я бы предложил что-то вроде этого:
* VM.Config.Network: добавление и изменение сетевых интерфейсов
* VM.Config.Network.Use: изменение существующих сетевых интерфейсов, за исключением изменения параметра firewall=[0|1]
* VM.Config.Firewall: управление брандмауэром
2. Добавить неявные права на проверку статуса VM (running | stopped) для всех "VM.\*" привилегий (get /nodes/{node}/qemu/{vmid}/status/current вернет только status=XXX). Может быть полезно для различных административных задач и для xtermjs|novnc
3. Права привилегий VM.\* без VM.Audit:
* Показывать VM в списке ресурсов, если назначены какие-либо привилегии VM.\* (получить доступные значения ресурсов: vmid, type, status, name, id, tags, node, template). Доступны вкладки настроек, соответствующие назначенным привилегиям
* VM.Console: доступна вкладка Console
* VM.Monitor, VM.Firewall, VM.Config.Options, VM.Backup, VM.Snapshot и т.д. — соответствующие вкладки доступны
* VM.Config.\* — доступна вкладка Hardware
4. В настоящее время права ресурсов являются кумулятивными (за исключением NoAccess). Но было бы неплохо иметь возможность "переопределять" права на отдельный ресурс, игнорируя наследование. В PVE есть флаг Propagate для назначения прав. Возможно, можно использовать флаг propagate=false для указания на переопределение прав на конечном ресурсе или добавить свой собственный флаг. Например, привилегия для конкретной VM с propagate=false и ролью PVEVMAudit переопределит права PVEVMAdmin, установленные на пуле.
5. Функции управления пользователями:
* Предотвратить изменение пароля/2FA пользователем
* Предотвратить создание API-токенов пользователем
