33.4. Управление правилами ACL
Система правил ACL позволяет точно настроить разрешенные операции для любого пользователя или группы пользователей. Каждая операция генерирует запрос на авторизацию, который проверяется на соответствие зарегистрированному набору правил ACL. Затем ядро может дать разрешение или отклонить запрос.
Просмотреть список правил можно, выполнив команду:
$ 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
6 #3 ---I-------------- #30 u--- #0
Данные правила соответсвуют следующим:
@1 VM+IMAGE+TEMPLATE+DOCUMENT+SECGROUP/* CREATE *
* ZONE/* USE *
* MARKETPLACE+MARKETPLACEAPP/* USE *
@1 HOST/* MANAGE #0
@1 NET/* USE #0
@1 DATASTORE/* USE #0
#3 IMAGE/#30 USE *
Первые шесть правил были созданы при начальной загрузке OpenNebula, а последнее — с помощью
oneacl
:
$ oneacl create "#3 IMAGE/#30 USE"
ID: 6
Столбцы в выводе
oneacl list
:
ID — идентификатор правила;
USER — пользователь. В этом поле может быть указан идентификатор пользователя (#), идентификатор группы (@) или все пользователи (*);
Resources — тип ресурса, к которому применяется правило:
V — ВМ;
H — узел;
N — виртуальная сеть;
I — образ;
U — пользователь;
T — шаблон;
G — группа;
D — хранилище;
C — кластер;
O — документ;
Z — зона;
S — группа безопасности;
v — виртуальный дата центр (VDC);
R — виртуальный маршрутизатор;
M — магазин приложений;
A — приложение из магазина приложений;
P — группа ВМ;
t — шаблон виртуальной сети;
RID — идентификатор ресурса. В этом поле может быть указан идентификатор отдельного объекта (#), группы (@) или кластера (%), или все объекты (*);
Operations — разрешённые операции:
U — использовать;
M — управлять;
A — администрировать;
C — создавать;
Zone — зоны, в которых применяется правило. В этом поле может быть указан идентификатор отдельной зоны (#), или всех зон (*).
Для удаления правила используется команда:
$ oneacl delete <ID>
Управлять правилами ACL удобно в веб-интерфейсе:
Для создания нового правила ACL, следует нажать кнопку Создать. В открывшемся диалоговом окне можно определить ресурсы, на которые распространяется правило, и разрешения, которые им предоставляются:
Каждое правило ACL добавляет новые разрешения и не может ограничивать существующие: если какое-либо правило даёт разрешение, операция разрешается.