Администрирование ================= + `Уровни доступа`_ + `Аутентификация`_ + `Управление пользователями`_ .. _authorization: Уровни доступа --------------- В рамках **ADСC** предусмотрен механизм ролей, управляющий доступом пользователей к различной функциональности приложения. Каждая роль определяется присущими ей уровнями доступа: * *manage users* -- доступ к администрированию (создание, изменение, удаление пользователей, управление доступом для LDAP-групп); * *view all queries* -- возможность видеть все выполняемые в кластере ADB запросы; * *kill all queries* -- возможность отменять выполнение любого запроса в кластере ADB; * *view self queries* -- возможность видеть собственные запросы (запросы, выполненные ролью ADB с именем, идентичным логину текущего пользователя ADCC или названию LDAP-группы, в которую входит пользователь -- см. `Аутентификация`_); * *kill self queries* -- возможность отменять выполнение собственных запросов (запросов, выполненных ролью ADB с именем, идентичным логину текущего пользователя ADСC или названию LDAP-группы, в которую входит пользователь -- см. `Аутентификация`_). Таким образом, авторизованному пользователю **ADСC** присваивается одна из следующих ролей: ======================= ======= =============== =============== ============== уровень доступа \\ роль Owner Administrator Advanced User Regular User ======================= ======= =============== =============== ============== manage users \+ view all queries \+ \+ \+ kill all queries \+ \+ view self queries \+ kill self queries \+ \+ ======================= ======= =============== =============== ============== .. _authentication: Аутентификация -------------- **ADCС** предоставляет два способа аутентификации пользователей: * `Стандартная аутентификация`_; * `LDAP-аутентификация`_. .. _basic_auth: Стандартная аутентификация ^^^^^^^^^^^^^^^^^^^^^^^^^^ В данной схеме аутентификации логин пользователя ассоциируется с именем роли **ADB** на основании полного совпадения. Создание, модификация и удаление стандартных пользователей доступно пользователям, которым присвоена роль *Owner*. .. _ldap_auth: LDAP-аутентификация ^^^^^^^^^^^^^^^^^^^ В приложении **ADCC** доступна аутентификация средствами LDAP. В данном методе проверка корректности логина и пароля пользователя происходит на заданном сервере LDAP. В **ADCC** реализована поддержка следующих LDAP-реализаций: * MSAD (Microsoft Active Directory); * FreeIPA. Параметры для подключения к серверу LDAP становятся доступны в конфигурации сервиса **ADCC** кластера **ADB** в **ADCM** после включения метода аутентификации LDAP (через переключатель слева от надписи "LDAP"): * Type (по умолчанмю "MSAD"); * URI; * Users baseDN; * Groups baseDN; * Login; * Password; * Size limit (по умолчанию равно 1000); * Lowercase login (по умолчанию чекбокс снят). Пример конфигурации для Microsoft Active Directory: :: * Type: MSAD * URI: ldap://ad.example.com:389 * Users baseDN: ou=Peoples,dc=ad,dc=adcc-user * Groups baseDN: ou=Groups,dc=ad,dc=adcc-group * Login: cn=admin,dc=ad,dc=adcc-user * Password: yourpassword * Size limit (по умолчанию равно 1000); Для уточнения параметров конкретной реализации LDAP в вашем случае обратитесь к администратору LDAP-каталога. .. important:: * Для логина в ADCC web-интерфейс с помощью LDAP-аутентификации от MSAD используйте upn-формат DN: ``sAMAccountName@domain`` * Для входа в ADCC web-интерфейс с помощью LDAP-аутентификации от FreeIPA достаточно DN в обычном формате: ``sAMAccountName`` .. _user_management: Управление пользователями ------------------------- Для доступа к панели управления пользователями необходимо выбрать раздел *ADMIN* в меню в правом верхнем углу главной панели приложения. При этом открывается экранная форма *Admin* (:numref:`Рис.%s. `). .. _admin_overview: .. figure:: ./images/admin_overview.png :align: center *Окно управления пользователями* Стандартные пользователи ^^^^^^^^^^^^^^^^^^^^^^^^ Раздел *User Management* предоставляет следующие возможности управления стандартными пользователями **ADCC**: * Для **создания** нового пользователя (:numref:`Рис.%s. `): #. Нажать кнопку справа над списком; #. В открывшемся окне заполнить все поля: * Логин; * Роль; * Пароль и подтверждение пароля. * Для **модификации** пользователя: #. Нажать иконку карандаша в соответствующей строке списка; #. В открывшемся окне изменить необходимые атрибуты пользователя: * Логин; * Роль; * Пароль (доступно после выбора чекбокса "Change password"). * Для **удаления** пользователя нажать иконку мусорной корзины в соответствующей строке списка. .. _user_form: .. figure:: ./images/user_form.png :align: center :width: 85% *Создание нового пользователя* Управление доступом для LDAP-групп ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ В разделе *LDAP group mapping* доступно определение соответствий LDAP-групп заданного LDAP-сервера их ролям в рамках **ADCC**. Соответствие подразумевает, что каждому пользователю, входящему в данную группу, при авторизации в **ADCC** присваивается указанная роль. Каждой LDAP-группе может соответствовать только одна роль. * Для **создания** нового соответствия (:numref:`Рис.%s. `): #. Нажать кнопку *"+"* справа над списком; #. В выпадающем списке *group* открывшегося окна выбрать необходимую LDAP-группу; #. В выпадающем списке *role* выбрать необходимую роль; #. Нажать кнопку *save*. * Для **изменения** роли, определенной для группы, нажать иконку карандаша в соответствующей строке списка; * Для **удаления** соответствия нажать иконку мусорной корзины в соответствующей строке списка. .. _mapping_form: .. figure:: ./images/mapping_form.png :align: center :width: 85% *Создание нового соответствия* Настройка SSL в ADCC ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для включения SSL при работе с ADCC требуется в ADCM в разделе **ADCC Configuration** включить `HTTPS parameters enable` и настроить следующие поля: .. _ssl1: .. figure:: ./images/ssl1.png :align: center *Окно HTTPS parameters enable в ADCM* Здесь нужно указать порт (8443 по умолчанию) и путь к SSL сертификату и его ключу. При этом файлы `.crt` и `.key` для самоподписанного сертификата уже есть по умолчанию на машине где развернут ADCC в папке ``/opt/adcc/ssl``, их можно указать например для целей тестирования: * Full ssl certificate path = ``/opt/adcc/ssl/adcc_default.crt`` * Full ssl key path = ``/opt/adcc/ssl/adcc_default.key`` :: $ pwd /opt/adcc/ssl $ ls adcc_default.crt adcc_default.key openssl.cnf Чтоб создать реальный SSL сертификат и зарегистрировать его в центре сертификации используйте ``openssl``. Далее для применения настроек надо в ADCM сделать `Save` и `ADCC - > Reconfigure & Restart` .. _ssl2: .. figure:: ./images/ssl2.png :align: center *Save и Reconfigure & Restart в ADCM* После этого в файле ``/opt/adcc/nginx`` появится запись (порт 8443): :: server { listen 8443 ssl; server_name ; ssl_certificate /etc/nginx/conf.d/adcc_ssl.crt; ssl_certificate_key /etc/nginx/conf.d/adcc_ssl.key; ssl_prefer_server_ciphers on; После этого вход в ADCC без SSL на ``http://:81`` автоматически будет перенаправлять на ``https://:8443`` (Будет сообщение `Not secure` для https, так как используется самоподписанный сертификат) .. _ssl3: .. figure:: ./images/ssl3.png :align: center *Редирект в ADCC на https* Подключение внешнего ADCC и мониторинг нескольких кластеров --------------- В ADCC, начиная с версии `6.18.0_arenadata28`, можно настроить мониторинг из одного ADCC Web Server несколько ADB кластеров. В примере ниже есть целевой кластер ADB1, где мы используем UI ADCC для мониторинга, и кластер-донор ADB2, который будет посылать свои метрики в целевой кластер. **Шаг 1. Настройка соединения в ADCM** Пропишите в ADCM для кластера ADB2, который хотите подключить, ip-адрес ADCC сервера кластера ADB1 .. _external1_adcm: .. figure:: ./images/external1_adcm.png :align: center *Настройка соединения в ADCM* Запустите `ADCC Action Reconfigure & Restart` чтоб изменения вошли в силу. **Шаг 2. Настройка соединения в ADCC** Подключите в ADCC кластера ADB1, где хотите увидеть данные из кластера ADB2. .. important:: Имя кластера при подключении в ADCC должно совпадать с его именем в ADCM. В противном случае соединение хоть и установится, но данные в ADCC приходить с этого кластера не будут. При этом кластер-донор и целевой кластер с ADCC не обязательно должны находиться в одном ADCM-контуре, соединение пройдет и между различными ADCM. .. _external2_edit_connection: .. figure:: ./images/external2_edit_connection.png :align: center *Редактирование соединения в ADCC* Формат JDBC (пример): :: jdbc:postgresql://10.92.6.210:5432/postgres Укажите пользователя ADB (по умолчанию это *gpadmin* без пароля) Нажмите `Fetch databases` и отметьте базы данных которые хотите увидеть (если возникла ошибка то значит в ``pg_hba.conf`` кластера ADB2 не разрешен вход для нашего хоста). В итоге имеем 2 кластера ADB в Configuration ADCC: .. _external3_configuration: .. figure:: ./images/external3_configuration.png :align: center *Окно настройки конфигурации в ADCC* **Шаг 3. Проверка подключения (опционально)** На кластере ADB2 выполняем команды : :: $ psql adb adb=# select version(); adb=# select pg_sleep(60); В ADCC кластера ADB1 мониторим в `Query Monitor`, что они пришли на UI: .. _external4_query_monitor: .. figure:: ./images/external4_query_monitor.png :align: center *Окно Query Monitor в ADCC* В `Query History` можно добавить колонку Cluster Name и видеть запросы к с обоих кластеров в одном UI: .. _external5_query_history: .. figure:: ./images/external5_query_history.png :align: center *Окно Query History в ADCC*