Управление правилами ACL#
Общие сведения#
Разрешительная система ACL позволяет выполнять тонкую настройку операций, доступных для любого пользователя или группы пользователей. При каждой операции формируется запрос авторизации, который проверяется на соответствие зарегистрированному набору правил ACL. После проверки служба сервера управления может предоставить доступ или отклонить запрос.
Использование правил ACL позволяет администраторам ПВ адаптировать роли пользователей под нужды инфраструктуры. Например, при помощи правил ACL ограничиваются права разработчика и пользователей виртуальных машин. Или можно предоставить определенному пользователю полномочия только для управления виртуальными сетями некоторых существующих групп.
Следует иметь в виду, что правила ACL представляют собой сложный механизм управления. При администрировании и управлении полномочиями необходимо руководствоваться правилами ролевого управления доступом.
Структура правил ACL#
Правило ACL в общем виде состоит из четырех компонентов, разделенных пробелом:
Компонент
User
(пользователь) — идентификатор субъекта;Компонент
Resources
(ресурсы), состоит из следующих полей:перечень типов ресурсов, разделенных знаком +;
знак /;
идентификатор объекта.
Компонент
Rights
(права) — перечень типов полномочий, разделенных знаком +;Компонент
Zone
(зона) — идентификатор зоны или перечень идентификаторов зон, в которых действует правило. Этот компонент не обязателен, его можно не указывать, если конфигурация ПВ не настроена для работы в федерации.
В правиле ACL идентификатор субъекта может принимать следующие значения:
#<идентификатор_пользователя>
— для отдельного пользователя;@<идентификатор_группы>
— для группы пользователей;\*
— для всех пользователей.
В правиле ACL идентификатор объекта может принимать следующие значения:
%<идентификатор_кластера>
— для отдельного кластера;#<идентификатор_ресурса>
— для отдельного ресурса;@<идентификатор_группы>
— для группы которой принадлежит ресурс;\*
— для всех ресурсов.
Примечание
Примеры
Правило предоставляет пользователю с идентификатором
5
право выполнять операции типаUSE
иMANAGE
в отношении всех образов и шаблонов, принадлежащих группе с идентификатором103
:#5 IMAGE+TEMPLATE/@103 USE+MANAGE #0
Правило позволяет всем пользователям группы с идентификатором
105
создавать новые ресурсы:@105 VM+NET+IMAGE+TEMPLATE/\* CREATE
Правило позволяет всем пользователям группы с идентификатором
106
применять виртуальную сеть с идентификатором47
. Это означает, что они могут разворачивать ВМ, в которых используется данная сеть:@106 NET/#47 USE
Правило дает полномочия пользователям группы с идентификатором
106
выполнять развертывание ВМ на серверах виртуализации, закрепленных за кластером с идентификатором100
:@106 HOST/%100 MANAGE
Примечание
Следует обратить внимание на отличие «* NET/#47 USE»
от «* NET/@47 USE»
. В первом случае все пользователи могут использовать сеть с идентификатором 47
, а во втором все пользователи могут использовать сети, которые принадлежат группе с идентификатором 47
.
Предупреждение
В ПВ существует неявное правило ACL: пользователи группы brestadmins
(администраторы ПВ) имеют право выполнять любую операцию.
Важный момент при работе с набором правил ACL заключается в том, что каждое правило добавляет новые полномочия, и они не могут ограничивать уже существующие. Таким образом если хотя бы одно из правил предоставляет полномочия, выполнение операции разрешается.
Следовательно, необходимо учитывать правила, которые применяются в отношении пользователя и его группы.
Примечание
Пример
Если пользователь с идентификатором 7
состоит в группе с идентификатором 108
и существует правило:
@108 IMAGE/#45 USE+MANAGE
(разрешить всем пользователям группы с идентификатором 108
использовать и управлять образом с идентификатором 45
), то правило:
#7 IMAGE/#45 USE
(разрешить только пользователю с идентификатором 7
только использовать (но не управлять) образ с идентификатором 45
) не имеет смысла.
Управление правилами ACL в интерфейсе командной строки#
Для управления правилами ACL используется инструмент командной строки oneacl
. Для просмотра действующих правил, необходимо выполнить команду:
oneacl list
Пример вывода после выполнения команды:
ID USER RES_VHNIUTGDCOZSvRMAPt RID OPE_UMAC ZONE
0 @1 V--I-T---O-S----P- * ---c *
1 * ----------Z------- * u--- *
2 * --------------MA-- * u--- *
3 @1 -H---------------- * -m-- #0
4 @1 --N--------------- * u--- #0
5 @1 -------D---------- * u--- #0
...
В представленной выше таблице содержится следующая информация:
в столбце
ID
указан идентификатор каждого правила;в столбце
USER
указан идентификатор субъекта;в столбце
Resources
перечислены сокращения существующих типов ресурсов. В каждом правиле указываются следующие условные сокращения типов ресурсов, к которым оно применяется:V — VM
H — HOST
N — NET
I — IMAGE
U — USER
T — TEMPLATE
G — GROUP
D — DATASTORE
C — CLUSTER
O — DOCUMENT
Z — ZONE
S — SECURITY GROUP
v — VDC
R — VROUTER
M — MARKETPLACE
A — MARKETPLACEAPP
P — VMGROUP
t — VNTEMPLATE
в столбце
RID
указан идентификатор объекта;в столбце
Operations
перечислены сокращения допустимых операций:U — USE
M — MANAGE
A — ADMIN
C — CREATE
в столбце
Zone
указаны зоны, в которых действует правило. Это может быть идентификатор отдельной зоны или всех зон.
Правила с идентификаторами 0 - 5 автоматически создаются при инициализации программных компонентов ПВ.
Для того чтобы создать правило ACL, необходимо выполнить команду:
oneacl create "<текст_правила>"
Для удаления правила ACL, необходимо выполнить команду:
oneacl delete <идентификатор_правила>
Примечание
В качестве идентификатора правила ACL можно указать перечень идентификаторов, разделенных запятыми или диапазон идентификаторов, крайние значения которого разделены двумя точками.
Управление правилами ACL в веб-интерфейсе ПВ#
Для отображения перечня всех правил ACL в веб-интерфейсе ПВ необходимо в меню слева выбрать пункт Система — Списки контроля. На открывшейся странице Списки Контроля Доступа будет представлена таблица правил, аналогичная таблице, отображаемой в интерфейсе командной строки после выполнения команды oneacl list
:

Для добавления нового правила ACL в веб-интерфейсе ПВ необходимо выполнить следующие действия:
В меню слева выбрать пункт Система — Списки контроля и на открывшейся странице Списки Контроля Доступа нажать на кнопку +;
На открывшейся странице Создать правило контроля:
В секции Область применения указать субъекта правила;
В секции Затрагиваемые ресурсы выбрать необходимые типы ресурсов;
В секции Подмножество ресурсов указать идентификатор объекта;
В секции Разрешенные действия задать перечень полномочий:
На странице Создать правило контроля в поле Строка, задающая правило проверить корректность сформированного правила и нажать на кнопку Создать.
После этого на открывшейся странице Списки Контроля Доступа появится запись о созданном правиле ACL.
Для удаления правила ACL в веб-интерфейсе ПВ необходимо выполнить следующие действия:
В меню слева выбрать пункт Система — Списки контроля;
На открывшейся странице Списки Контроля Доступа выбрать правила, которые необходимо удалить, и нажать на кнопку Удалить;
В открывшемся окне Удалить нажать на кнопку OK.
Использование правил ACL для реализации роли разработчика ВМ#
Для реализации роли разработчика ВМ необходимо выполнить следующие действия:
Для группы, в которую входит пользователь, предоставить полномочия
USE
в отношении следующих ресурсов виртуализации: хранилища и виртуальные сети.Для этого создать соответствующее правило ACL командой:
..code-block:: badh
oneacl create «@<идентификатор_группы> DATASTORE+NET /* USE»
Пользователю предоставить полномочия
CREATE
иMANAGE
в отношении шаблонов ВМ. Для этого создать соответствующее правило ACL командой:oneacl create "#<идентификатор_пользователя> TEMPLATE/* CREATE+MANAGE"
Если пользователь совмещает роли разработчика ВМ и администратора ВМ, то необходимо выполнить следующие действия:
Пользователю предоставить полномочия
MANAGE
в отношении серверов виртуализации. Для этого создать соответствующее правило ACL командой:oneacl create "#<идентификатор_пользователя> HOST /* MANAGE"
Пользователю предоставить полномочия
CREATE
в отношении остальных ресурсов виртуализации. Для этого создать соответствующее правило ACL командой:
oneacl create "#<идентификатор_пользователя> VM+IMAGE+TEMPLATE+DOCUMENT+SECGROUP+VROUTER+VMGROUP/* CREATE"