Настройка пользователей и политик доступа

В зависимости от характеристик настроенных параметров UserGroupProvider и AccessPolicyProvider пользователи, группы и политики могут конфигурироваться в пользовательском интерфейсе. Если расширения не настроены, то в пользовательском интерфейсе пользователи, группы и политики доступны только для чтения. Если сконфигурированный авторизатор не использует UserGroupProvider и AccessPolicyProvider, пользователи и политики могут быть или не быть видимыми и настраиваемыми в пользовательском интерфейсе на основе базовой реализации.

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

Создание пользователей и групп

В пользовательском интерфейсе необходимо выбрать “Users” в глобальном меню, при этом открывыается диалоговое окно для создания пользователей и групп и управления ими (Рис.64.). Для создания пользователей и групп используется кнопка “Add User”.

../../_images/ADS_AdminNIFI_Policies_Users.png

Рис. 64. Nifi Users

Для создания пользователя в новом открывшемся диалоговом окне необходимо выбрать “Individual” и ввести информацию “Identity”, соответствующую методу аутентификации защиты инстанса NiFi. После чего нажать “ОК” (Рис.65.).

../../_images/ADS_AdminNIFI_Policies_Identity.png

Рис. 65. Создание пользователя

Для создания группы в диалоговом окне следует выбрать “Group”, ввести имя группы в поле “Identity” и отметить пользователей в “Members”, которые необходимо включить в группу. После чего нажать “ОК” (Рис.66.).

../../_images/ADS_AdminNIFI_Policies_Group.png

Рис. 66. Создание группы

Политики доступа

Управление возможностями пользователей и групп NiFi осуществляется с помощью политик доступа. Существует два типа политик доступа, которые могут быть применены к ресурсу:

  • View (просмотр) – если ресурсу назначается политика просмотра, то добавленные в эту политику пользователи и группы могут только видеть детали данного ресурса;
  • Modify (изменение) – если ресурсу назначается политика изменения, то добавленные в эту политику пользователи и группы могут изменить конфигурацию данного ресурса.

Создавать и применять политики доступа можно как на глобальном уровне (Global Access Policies), так и на уровне компонентов (Component Level Access Policies).

Global Access Policies

Политики глобального доступа управляют следующими полномочиями на уровне системы:

Табл. 9. Global Access Policies
Policy Privilege Global Menu Selection Resource Descriptor
view the UI Разрешение пользователям просматривать UI N/A /flow
access the controller Позволяет пользователям просматривать/изменять контроллер, включая задачи отчетности, службы контроллеров и узлы в кластере Controller Settings /controller
query provenance Позволяет пользователям отправлять Provenance Search и запрашивать Event Lineage Data Provenance /provenance
access restricted components Позволяет пользователям создавать/изменять ограниченные компоненты при условии наличия других разрешений. Ограниченные компоненты могут указывать, какие конкретные разрешения требуются. Разрешения могут предоставляться для определенных ограничений или независимо от них. Если разрешение предоставляется независимо от ограничений, пользователь может создавать/изменять все ограниченные компоненты N/A /restricted-components
access all policies Позволяет пользователям просматривать/изменять политики для всех компонентов Policies /policies
access users/user groups Позволяет пользователям просматривать/изменять пользователей и группы пользователей Users /tenants
retrieve site-to-site details Позволяет другим инстансам NiFi извлекать информацию site-to-site N/A /site-to-site
view system diagnostics Позволяет пользователям просматривать системную диагностику Summary /system
proxy user requests Позволяет прокси отправлять запросы от имени других пользователей N/A /proxy
access counters Позволяет пользователям просматривать/изменять счетчики доступа Counters /counters

Component Level Access Policies

Политики доступа на уровне компонентов управляют следующими полномочиями на уровне компонентов:

Табл. 10. Component Level Access Policies
Policy Privilege Resource Descriptor & Action
view the component Позволяет пользователям просматривать детали конфигурации компонентов resource=”/<component-type>/<component-UUID>” action=”R”
modify the component Позволяет пользователям изменять детали конфигурации компонентов resource=”/<component-type>/<component-UUID>” action=”W”
view provenance Позволяет пользователям просматривать события происхождения, созданные компонентом resource=”/provenance-data/<component-type>/<component-UUID>” action=”R”
view the data Позволяет пользователям просматривать метаданные и содержимое компонента в очередях потока в исходящих соединениях и через события происхождения resource=”/data/<component-type>/<component-UUID>” action=”R”
modify the data Позволяет пользователям очищать очереди потоков в исходящих соединениях и повторно отправлять через события происхождения resource=”/data/<component-type>/<component-UUID>” action=”W”
view the policies Позволяет пользователям просматривать список пользователей, которые могут просматривать/изменять компонент resource=”/policies/<component-type>/<component-UUID>” action=”R”
modify the policies Позволяет пользователям изменять список пользователей, которые могут просматривать/изменять компонент resource=”/policies/<component-type>/<component-UUID>” action=”W”
receive data via site-to-site Позволяет порту получать данные из инстансов NiFi resource=”/data-transfer/input-ports/<port-UUID>” action=”W”
send data via site-to-site Позволяет порту отправлять данные из инстансов NiFi resource=”/data-transfer/output-ports/<port-UUID>” action=”W”

Important

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

Important

Для доступа к List Queue и Delete Queue для соединения пользователю требуются политики “view the data” и “modify the data” на компоненте. Так же все узлы в кластерной среде должны быть добавлены к этим политикам, так как запрос пользователя может быть реплицирован через любой узел в кластере

Настройка политик доступа на основе конкретных примеров

Самый эффективный способ понять, как создавать и применять политики доступа, – это пройтись по некоторым распространенным примерам. В приведенных далее сценариях User1 является администратором, а User2 – недавно добавленным пользователем, которому предоставлен доступ только к пользовательскому интерфейсу. На рисунке в качестве отправных точек показаны два процессора в рабочей области: GenerateFlowFile и LogAttribute (Рис.67.).

../../_images/ADS_AdminNIFI_Policies_Examples.png

Рис. 67. GenerateFlowFile и LogAttribute

User1 может добавлять компоненты в поток данных, а так же перемещать, редактировать и подключать все процессоры. Детали и свойства процессоров и групп процессов root видны для User1 (Рис.68.).

../../_images/ADS_AdminNIFI_Policies_User1.png

Рис. 68. User1 (администратор)

User2 не может добавлять компоненты в поток данных, а так же перемещать, редактировать и подключать компоненты. Детали и свойства процессоров и групп процессов root скрыты от User2 (Рис.69.).

../../_images/ADS_AdminNIFI_Policies_User2.png

Рис. 69. User2 (недавно добавленный пользователь)

Перемещение процессора

User1 необходимо выполнить следующие шаги для выдачи разрешения пользователю User2 на перемещение процессора GenerateFlowFile в потоке данных с сохранением привилегий у User1:

  1. Выбрать процессор GenerateFlowFile.
  2. Нажать значок “Access Policies” на панели управления “Operate”. При этом открывается диалоговое окно “Access Policies”.
  3. Выбрать “modify the component” в раскрывающемся списке политики. Политика “modify the component”, которая в настоящее время существует на процессоре (дочернем), является унаследованной от группы процессов root (родительской), на которой User1 имеет привилегии (Рис.70.).
../../_images/ADS_AdminNIFI_Policies_Modify.png

Рис. 70. Modify the component

  1. Нажать ссылку “Override”. При замещении политики необходимо выбрать ее переопределение либо на копию унаследованной политики, либо на пустую политику. Для создания копии следует в диалоговом окне “Override Policy” выбрать “Copy” и нажать кнопку “Override” (Рис.71.).
../../_images/ADS_AdminNIFI_Policies_Override.png

Рис. 71. Override Policy

  1. В созданной политике выбрать значок “Add User”. В поле “User Identity” ввести вручную или найти в списке User2 и нажать “OK” (Рис.72.).
../../_images/ADS_AdminNIFI_Policies_Modify-add.png

Рис. 72. Добавление User2 в политику

С такими изменениями User1 сохраняет возможность перемещения обоих процессоров в рабочей области. А User2 теперь может перемещать процессор GenerateFlowFile (Рис.73.).

../../_images/ADS_AdminNIFI_Policies_Result.png

Рис. 73. Результат действий

Изменение процессора

В приведенном примере “Перемещение процессора” User2 добавлен в политику “modify the component” для процессора GenerateFlowFile. Но без возможности просмотра свойств процессора User2 не может изменять его конфигурацию – чтобы отредактировать компонент, пользователь должен быть также включен в политику “view the component”.

User1 необходимо выполнить следующие шаги для реализации возможности изменения конфигурации процессора пользователю User2:

  1. Выбрать процессор GenerateFlowFile.
  2. Нажать значок “Access Policies” на панели управления “Operate”. При этом открывается диалоговое окно “Access Policies”.
  3. Выбрать “view the component” в раскрывающемся списке политики. Политика “view the component”, которая в настоящее время существует на процессоре (дочернем), является унаследованной от группы процессов root (родительской), на которой User1 имеет привилегии (Рис.74.).
../../_images/ADS_AdminNIFI_Policies_View.png

Рис. 74. View the component

  1. Нажать ссылку “Override” и в открывшемся диалоговом окне, сохранив политику копирования по умолчанию, нажать кнопку “Override”.
  2. В созданной политике выбрать значок “Add User”. В поле “User Identity” ввести вручную или найти в списке User2 и нажать “OK” (Рис.75.).
../../_images/ADS_AdminNIFI_Policies_View-add.png

Рис. 75. Добавление User2 в политику

С такими изменениями User1 сохраняет возможность просмотра и редактирования процессоров в рабочей области. А User2 теперь может просматривать и редактировать процессор GenerateFlowFile (Рис.76.).

../../_images/ADS_AdminNIFI_Policies_Result-view.png

Рис. 76. Результат действий

Создание подключения

При настройке политик так, как описано в предыдущих двух примерах, User1 может подключить GenerateFlowFile к LogAttribute (Рис.77.).

../../_images/ADS_AdminNIFI_Policies_Connect.png

Рис. 77. User1 – подключение процессоров

При этом User2 не имеет права доступа на установку соединения процессоров (Рис.78.).

../../_images/ADS_AdminNIFI_Policies_No-connect.png

Рис. 78. User2 – невозможность подключения процессоров

Это объясняется тем, что:

  • User2 не имеет доступа к изменениям в группе процессов;
  • Несмотря на то, что User2 имеет право на просмотр и изменение исходного компонента (GenerateFlowFile), User2 не имеет политики доступа к целевому компоненту (LogAttribute).

User1 необходимо выполнить следующие шаги для реализации возможности подключения GenerateFlowFile к LogAttribute пользователю User2:

  1. Выбрать группу процессов root, при этом панель управления “Operate” обновляется с подробными сведениями.
  2. Выбрать значок “Access Policies” на панели управления “Operate”. При этом открывается диалоговое окно “Access Policies”.
  3. В диалоговом окне в раскрывающемся списке политики выбрать “modify the component” (Рис.79.).
../../_images/ADS_AdminNIFI_Policies_Connect-modify.png

Рис. 79. Modify the component

  1. Выбрать значок “Add User”. В поле “User Identity” ввести вручную или найти в списке User2 и нажать “OK” (Рис.80.).
../../_images/ADS_AdminNIFI_Policies_Connect-add.png

Рис. 80. Добавление User2 в политику группы

Добавляя User2 в политику “modify the component” группы процессов, User2 так же добавляется к политике “modify the component” в процессоре LogAttribute путем наследования. Чтобы проверить это, необходимо в рабочей области выделить процессор LogAttribute и выбрать значок “Access Policies” на панели управления “Operate”. При этом открывается диалоговое окно политик доступа процессора LogAttribute с наличием пользователя User2 в политике “modify the component” (Рис.81.).

../../_images/ADS_AdminNIFI_Policies_Connect-confirm.png

Рис. 81. Проверка наличия политики User2

С такими изменениями User2 теперь может подключать процессор GenerateFlowFile к процессору LogAttribute (Рис.82., Рис.83.).

../../_images/ADS_AdminNIFI_Policies_Connect-result-1.png

Рис. 82. User2 – подключение процессоров

../../_images/ADS_AdminNIFI_Policies_Connect-result-2.png

Рис. 83. User2 – подключение процессоров

Изменение соединения

В следующем сценарии User1 и User2 добавляют процессор ReplaceText в группу процессов root (Рис.84.).

../../_images/ADS_AdminNIFI_Policies_ReplaceText.png

Рис. 84. Добавление процессора ReplaceText

User1 может выбрать и изменить существующее соединение между GenerateFlowFile и LogAttribute, чтобы подключить GenerateFlowFile к ReplaceText (Рис.85.).

../../_images/ADS_AdminNIFI_Policies_EditConnect-user1.png

Рис. 85. User1 – изменение соединения

При этом User2 не имеет возможности выполнить такое действие (Рис.86.).

../../_images/ADS_AdminNIFI_Policies_EditConnect-user2.png

Рис. 86. User2 недоступно изменение соединения

User1 необходимо выполнить следующие шаги для реализации возможности подключения GenerateFlowFile к ReplaceText пользователю User2:

  1. Выбрать группу процессов root, при этом панель управления “Operate” обновляется с подробными сведениями.
  2. Выбрать значок “Access Policies” на панели управления “Operate”. При этом открывается диалоговое окно “Access Policies”.
  3. В диалоговом окне в раскрывающемся списке политики выбрать “view the component” (Рис.87.).
../../_images/ADS_AdminNIFI_Policies_Connect-view.png

Рис. 87. View the component

  1. Выбрать значок “Add User”. В поле “User Identity” ввести вручную или найти в списке User2 и нажать “OK” (Рис.88.).
../../_images/ADS_AdminNIFI_Policies_Connect-view-add.png

Рис. 88. Добавление User2 в политику группы

Будучи добавленным к политикам просмотра и изменения для группы процессов User2 теперь может подключать процессор GenerateFlowFile к процессору ReplaceText (Рис.89.).

../../_images/ADS_AdminNIFI_Policies_EditConnect-user2-result.png

Рис. 89. User2 – изменение соединения