Product SiteDocumentation Site

42.5. Управление доступом

Чтобы пользователь мог выполнить какое-либо действие (например, просмотр, изменение или удаление ВМ), ему необходимо иметь соответствующие разрешения.
PVE использует систему управления разрешениями на основе ролей и путей. Запись в таблице разрешений позволяет пользователю или группе играть определенную роль при доступе к объекту. Это означает, что такое правило доступа может быть представлено как тройка (путь, пользователь, роль) или (путь, группа, роль), причем роль содержит набор разрешенных действий, а путь представляет цель этих действий.
Роль — это список привилегий. В PVE предопределён ряд ролей:
  • Administrator — имеет все привилегии;
  • NoAccess — нет привилегий (используется для запрета доступа);
  • PVEAdmin — все привилегии, кроме прав на изменение настроек системы (Sys.PowerMgmt, Sys.Modify, Realm.Allocate);
  • PVEAuditor — доступ только для чтения;
  • PVEDatastoreAdmin — создание и выделение места для резервного копирования и шаблонов;
  • PVEDatastoreUser — выделение места для резервной копии и просмотр хранилища;
  • PVEMappingAdmin — управление сопоставлениями ресурсов;
  • PVEMappingUser — просмотр и использование сопоставлений ресурсов;
  • PVEPoolAdmin — выделение и просмотр пулов;
  • PVEPoolUser — просмотр пулов;
  • PVESDNAdmin — выделение и просмотр SDN;
  • PVESDNUser — доступ к мостам и виртуальным сетям SDN;
  • PVESysAdmin — ACL пользователя, аудит, системная консоль и системные журналы;
  • PVETemplateUser — просмотр и клонирование шаблонов;
  • PVEUserAdmin — администрирование пользователей;
  • PVEVMAdmin — управление ВМ;
  • PVEVMUser — просмотр, резервное копирование, настройка CDROM, консоль ВМ, управление питанием ВМ.
Просмотреть список предопределенных ролей в веб-интерфейсе можно, выбрав Центр обработки данныхРазрешенияРоли:
Список предопределенных ролей
Добавить новую роль можно как в веб-интерфейсе (Центр обработки данныхРазрешенияРоли кнопка Создать):
Добавлние роли Sys_Power-only
Так и в командной строке:
# pveum role add VM_Power-only --privs "VM.PowerMgmt VM.Console"

Примечание

Роли, начинающиеся с PVE, всегда встроены, пользовательские роли не могут использовать этот зарезервированный префикс.
Привилегия — это право на выполнение определенного действия. Для упрощения управления списки привилегий сгруппированы в роли, которые затем можно использовать в таблице разрешений. Привилегии не могут быть напрямую назначены пользователям, не будучи частью роли.

Таблица 42.1. Привилегии используемые в PVE

Привилегия
Описание
Привилегии узла/системы
Group.Allocate
Создание/удаление/изменение групп
Mapping.Audit
Просмотр сопоставлений ресурсов
Mapping.Modify
Управление сопоставлениями ресурсов
Mapping.Use
Использование сопоставлений ресурсов
Permissions.Modify
Изменение прав доступа
Pool.Allocate
Создание/удаление/изменение пулов
Pool.Audit
Просмотр пула
Realm.Allocate
Создание/удаление/изменение областей аутентификации
Realm.AllocateUser
Назначение пользователю области аутентификации
SDN.Allocate
Управление конфигурацией SDN
SDN.Audit
Просмотр конфигурации SDN
Sys.AccessNetwork
Просмотр информации о сетевых интерфейсах, использование сетевых ресурсов
Sys.Audit
Просмотр состояния/конфигурации узла, конфигурации кластера Corosync и конфигурации HA
Sys.Console
Консольный доступ к узлу
Sys.Incoming
Разрешить входящие потоки данных из других кластеров (экспериментально)
Sys.Modify
Создание/удаление/изменение параметров сети узла
Sys.PowerMgmt
Управление питанием узла (запуск, остановка, сброс, выключение)
Sys.Syslog
Просмотр Syslog
User.Modify
Создание/удаление/изменение пользователя
Права, связанные с ВМ
SDN.Use
Доступ к виртуальным сетям SDN и локальным сетевым мостам
VM.Allocate
Создание/удаление ВМ
VM.Audit
Просмотр конфигурации ВМ
VM.Backup
Резервное копирование/восстановление ВМ
VM.Clone
Клонирование/копирование ВМ
VM.Config.CDROM
Извлечение/изменение CDROM
VM.Config.CPU
Изменение настроек процессора
VM.Config.Cloudinit
Изменение параметров Cloud-init
VM.Config.Disk
Добавление/изменение/удаление дисков ВМ
VM.Config.HWType
Изменение типа эмуляции
VM.Config.Memory
Изменение настроек памяти
VM.Config.Network
Добавление/изменение/удаление сетевых устройств
VM.Config.Options
Изменение любой другой конфигурации ВМ
VM.Console
Консольный доступ к ВМ
VM.Migrate
Миграция ВМ на альтернативный сервер в кластере
VM.Monitor
Доступ к монитору виртуальной машины (kvm)
VM.PowerMgmt
Управление питанием (запуск, остановка, сброс, выключение)
VM.Snapshot.Rollback
Откат ВМ к одному из её снимков
VM.Snapshot
Создание/удаление снимков ВМ
Права, связанные с хранилищем
Datastore.Allocate
Создание/удаление/изменение хранилища данных
Datastore.AllocateSpace
Выделить место в хранилище
Datastore.AllocateTemplate
Размещение/загрузка шаблонов контейнеров и ISO-образов
Datastore.Audit
Просмотр хранилища данных

Примечание

Следует внимательно обращаться с правами Permissions.Modify и Sys.Modify, так как они позволяют изменять важные и конфиденциальные аспекты системы и ее конфигурации.
Права доступа назначаются объектам, таким как ВМ, хранилища или пулы ресурсов. PVE использует файловую систему как путь к этим объектам. Эти пути образуют естественное дерево, и права доступа более высоких уровней (более короткий путь) могут распространяться вниз по этой иерархии.
Путь может представлять шаблон. Когда API-вызов требует разрешений на шаблонный путь, путь может содержать ссылки на параметры вызова API. Эти ссылки указываются в фигурных скобках. Некоторые параметры неявно берутся из URI вызова API. Например, путь /nodes/{node} при вызове /nodes/pve01/status требует разрешений на /nodes/pve01, в то время как путь {path} в запросе PUT к /access/acl ссылается на параметр метода path.
Примеры:
  • /nodes/{node} — доступ к узлам PVE;
  • /vms — распространяется на все ВМ;
  • /vms/{vmid} — доступ к определенным ВМ;
  • /storage/{storeid} — доступ к определенным хранилищам;
  • /pool/{poolid} — доступ к ресурсам из определенного пула ресурсов;
  • /access/groups — администрирование групп;
  • /access/realms/{realmid} — административный доступ к области аутентификации.
Используются следующие правила наследования:
  • разрешения для отдельных пользователей всегда заменяют разрешения для групп;
  • разрешения для групп применяются, если пользователь является членом этой группы;
  • разрешения на более глубоких уровнях перекрывают разрешения, унаследованные от верхнего уровня;
  • NoAccess отменяет все другие роли на данном пути.
Кроме того, токены с разделением привилегий (см. API-токены) не могут обладать разрешениями на пути, которых нет у связанного с ними пользователя.
Для назначения разрешений необходимо в окне Центр обработки данныхРазрешения нажать кнопку Добавить, в выпадающем меню выбрать Разрешения группы, если разрешения назначаются группе пользователей, или Разрешения пользователя, если разрешения назначаются пользователю:
Добавление разрешений
Далее в открывшемся окне выбрать путь, группу и роль и нажать кнопку Добавить:
Добавление разрешений группе
Примеры работы с разрешениями в командной строке:
  • предоставить группе admin полные права администратора:
    # pveum acl modify / --groups admin --roles Administrator
    
  • предоставить пользователю test@pve доступ к ВМ только для чтения:
    # pveum acl modify /vms --users test@pve --roles PVEAuditor
    
  • делегировать управление пользователями пользователю test@pve:
    # pveum acl modify /access --users test@pve --roles PVEUserAdmin
    
  • разрешить пользователю orlov@test.alt изменять пользователей в области test.alt, если они являются членами группы office-test.alt:
    # pveum acl modify /access/realm/test.alt --users orlov@test.alt --roles PVEUserAdmin
    # pveum acl modify /access/groups/office-test.alt --users orlov@test.alt --roles PVEUserAdmin
    
  • разрешить пользователям группы developers администрировать ресурсы, назначенные пулу IT:
    # pveum acl modify /pool/IT/ --groups developers --roles PVEAdmin
    
  • удалить у пользователя test@pve право на просмотр ВМ:
    # pveum acl delete /vms --users test@pve --roles PVEAuditor
    

Примечание

Назначение привилегий на токены см. в разделе API-токены.