Общие сведения

В ПК СВ "Брест" для настройки операций, доступных для пользователя или группы пользователей, используется разрешительная система ACL (access-control list). При каждой операции формируется запрос авторизации, который проверяется на соответствие зарегистрированному набору правил ACL. После проверки служба сервера управления может предоставить доступ или отклонить запрос.

Использование правил ACL позволяет администраторам ПК СВ адаптировать роли пользователей под нужды инфраструктуры. Например, при помощи правил ACL ограничиваются права разработчика и пользователей виртуальных машин. 

При администрировании и управлении полномочиями необходимо руководствоваться правилами ролевого управления доступом, установленными в ПК СВ.

Управление правилами ACL в интерфейсе командной строки

Компоненты правила ACL

Правило ACL в общем виде состоит из четырех компонентов, разделенных пробелом или знаком ":":

  1. компонент User (в веб-интерфейсе — Область применения) — идентификатор субъекта;

    Идентификатор субъекта может принимать следующие значения:

    •  #<идентификатор_пользователя> — для отдельного пользователя;
    •  @<идентификатор_группы> — для группы пользователей;
    • * — для всех пользователей.
  2. компонент Resources (в веб-интерфейсе — Затрагиваемые ресурсы и Подмножество ресурсов), состоит из следующих полей:

    • перечень типов ресурсов, разделенных знаком «+»;

      В ПК СВ доступны следующие типы ресурсов: VM, HOST, NET, IMAGE, USER, TEMPLATE, GROUP, DATASTORE, CLUSTER, DOCUMENT, ZONE, SECURITY GROUP, VDC, VROUTER, MARKETPLACE, MARKETPLACEAPP, VMGROUP, VNTEMPLATE.

    • знак «/»;

    • идентификатор объекта;

      Идентификатор объекта может принимать следующие значения:

      • %<идентификатор_кластера> — для отдельного кластера;
      • #<идентификатор_ресурса> — для отдельного ресурса;
      • @<идентификатор_группы> — для группы которой принадлежит ресурс;
      • * — для всех ресурсов.
  3. компонент Rights (в веб-интерфейсе — Разрешенные действия) — перечень типов полномочий, разделенных знаком «+».
    Типы полномочий:
    • USE (VIEW): Включает возможность просмотра информации о ресурсе. Не дает полномочий для изменения статуса ресурса или его конфигурации. Так как USE является наиболее низким уровнем, для успешного выполнения операций MANAGE или ADMINUSE также должно быть разрешено;
    • MANAGE: Включает возможность управления ресурсами, включая их конфигурацию и статус. Например, перезагрузка или миграция ВМ;

      Даже если это правило разрешено, для его успешного выполнения также должно быть разрешено правило USE.

    • ADMIN: Это самый высокий уровень разрешений и обеспечивает полный контроль над ресурсом. Это включает в себя все дополнительные операции, которые не входят в MANAGE или USE, такие как изменение владельцев или управление правами доступа.

      Правила MANAGE и USE должны быть разрешены вместе с ADMIN для его успешного выполнения.

    • CREATE. Это действие дает пользователю право создавать новые ресурсы определенного типа. Оно применяется ко всем типам ресурсов, с двумя исключениями:

      • Разрешения на создание не применяются к ресурсам 'USER' и 'GROUP', поскольку они обычно контролируются на уровне администратора.
      • При создании ресурса виртуальной машины, было бы приемлемо использовать образ и шаблон, если на них есть разрешение на использование (USE).
  4. компонент Zone (зона) — идентификатор зоны или перечень идентификаторов зон, в которых действует правило. Этот компонент не обязателен, его можно не указывать, если конфигурация ПК СВ не настроена для работы в федерации.

Примеры

  1. Правило предоставляет пользователю с идентификатором 5 право выполнять операции типа USE и MANAGE в отношении всех образов и шаблонов, принадлежащих группе с идентификатором 103:

    #5 IMAGE+TEMPLATE/@103 USE+MANAGE #0
  2. Правило позволяет всем пользователям группы с идентификатором 105 создавать новые ресурсы:

    @105 VM+NET+IMAGE+TEMPLATE/* CREATE
  3. Правило позволяет всем пользователям группы с идентификатором 106 применять виртуальную сеть с идентификатором 47. Это означает, что они могут разворачивать ВМ, в которых используется данная сеть:

    @106 NET/#47 USE
  4. Правило дает полномочия пользователям группы с идентификатором 106 выполнять развертывание ВМ на серверах виртуализации, закрепленных за кластером с идентификатором 100:

    @106 HOST/%100 MANAGE

    Следует обратить внимание на отличие * NET/#47 USE от * NET/@47 USE. В первом случае все пользователи могут использовать сеть с идентификатором 47, а во втором все пользователи могут использовать сети, которые принадлежат группе с идентификатором 47.

  5. Если пользователь с идентификатором 7 состоит в группе с идентификатором 108 и существует правило:

    @108 IMAGE/#45 USE+MANAGE

    (разрешить всем пользователям группы с идентификатором 108 использовать и управлять образом с идентификатором 45), то правило:

    #7 IMAGE/#45 USE

    (разрешить только пользователю с идентификатором 7 только использовать (но не управлять) образ с идентификатором 45) не имеет смысла.

Каждое правило ACL добавляет новые полномочия, и они не могут ограничивать уже существующие. Таким образом если хотя бы одно из правил предоставляет полномочия, выполнение операции разрешается. Следовательно, необходимо учитывать правила, которые применяются в отношении пользователя и его группы.

Управление правилами 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
...
CODE

Где

  • в столбце 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 - 4 автоматически создаются при инициализации программных компонентов ПК СВ.

Для того чтобы создать правило ACL, необходимо выполнить команду:

oneacl create "<текст_правила>"
Для удаления правила ACL, необходимо выполнить команду:
oneacl delete <идентификатор_правила>

В качестве идентификатора правила ACL можно указать перечень идентификаторов, разделенных запятыми или диапазон идентификаторов (в качестве разделителя используются две точки — «..»).

Ограничения при работе с правилами ACL

При создании правила ACL командой oneacl create необходимо соблюдать следующие требования:

  • обязательно должен быть указан один вид идентификатора субъекта (идентификатор субъекта не может принимать отрицательное значение);
  • при установке правила для всех пользователей, #<идентификатор_пользователя> должен быть равен нулю;

  • должен быть указан один вид идентификатора объекта (идентификатор объекта не может принимать отрицательное значение);
  • %<идентификатор_кластера> может быть установлен только для типов ресурсов DATASTORE, HOST и NET;
  • @<идентификатор_группы> не может быть установлен для ресурсов HOST, GROUP, CLUSTER, ZONE и VDC;
  • при установке правила для всех для всех ресурсов, #<идентификатор_ресурса> должен быть равен нулю;
  • обязательно должен быть указан один и более из доступных в ПК СВ типов ресурса;
  • в компоненте Zone, не должен быть указан @<идентификатор_группы>, более одного вида идентификатора субъекта и отрицательное значение. 

Управление правилами ACL в веб-интерфейсе ПК СВ

Управление правилами ACL

Для отображения перечня всех правил ACL в веб-интерфейсе ПК СВ необходимо в меню слева выбрать пункт Система — Списки контроля. На открывшейся странице Списки Контроля Доступа будет представлена таблица правил, аналогичная таблице, отображаемой в интерфейсе командной строки после выполнения команды oneacl list.

Для добавления нового правила ACL в веб-интерфейсе ПК СВ необходимо выполнить следующие действия:

  1. в меню слева выбрать пункт Система — Списки контроля и на открывшейся странице Списки Контроля Доступа нажать на кнопку +;
  2. на открывшейся странице Создать правило контроля:

    1. в секции Область применения указать субъекта правила;
    2. в секции Затрагиваемые ресурсы выбрать необходимые типы ресурсов;
    3. в секции Подмножество ресурсов указать идентификатор объекта;
    4. в секции Разрешенные действия задать перечень полномочий,
  3. на странице Создать правило контроля в поле Строка, задающая правило проверить корректность сформированного правила и нажать на кнопку Создать;
  4. на открывшейся странице Списки Контроля Доступа появится запись о созданном правиле ACL.

Для удаления правила ACL в веб-интерфейсе ПК СВ необходимо выполнить следующие действия:

  1. в меню слева выбрать пункт Система — Списки контроля;
  2. на открывшейся странице Списки Контроля Доступа выбрать правила, которые необходимо удалить и нажать на кнопку Удалить;
  3. в открывшемся окне Удалить нажать на кнопку OK.

Ограничения при работе с правилами ACL

При создании правил ACL в веб-интерфейсе ПК СВ необходимо соблюдать следующие требования:

  • при установке в секции Область применения флага Группа, в секции Затрагиваемые ресурсы не могут быть установлены флаги для типов Узлы, Группы, Кластеры, VDCs и Зоны:

    При несоблюдении этого требования в веб-интерфейсе появится всплывающее окно с сообщением об ошибке:
    [one.acl.addrule] Rule @1 HOST+NET+IMAGE+DATASTORE+ZONE/@1 USE * is malformed: [resource] GROUP(@) selector cannot be applied to HOST, GROUP, CLUSTER, ZONE or VDC types

  • при установке в секции Подмножество ресурсов флага Кластер, в секции Затрагиваемые ресурсы могут быть установлены флаги только для типов Хранилища, Узлы и Вирт. сети.

    При несоблюдении этого требования в веб-интерфейсе появится всплывающее окно с сообщением об ошибке:
    [one.acl.addrule] Rule @1 HOST+NET+IMAGE+DATASTORE/%0 USE * is malformed: [resource] CLUSTER(%) selector can be applied only to DATASTORE, HOST and NET types