Облачная платформаAdvanced

Доступ к кластеру Elasticsearch с использованием LDAP

Эта статья полезна?
Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Лёгкий протокол доступа к каталогам (LDAP) — это облегчённая версия протокола доступа к каталогам, основанная на стандарте X.500. Сервис LDAP предоставляет аутентификацию и авторизацию пользователей. С использованием плагина Security для Open Distro for Elasticsearch, CSS добавляет Active Directory в качестве бэкенда аутентификации для кластеров, подключая их прозрачно к сервису LDAP. В этой теме описываются шаги, необходимые для подключения кластера CSS к сервису LDAP.

Также описывается, как включить аутентификацию LDAP для кластера CSS, чтобы разрешить доступ пользователям LDAP с определёнными ролями.

Ограничения

Только кластеры Elasticsearch 7.10.2 в режиме security-mode могут быть доступны через LDAP.

Подготовка

  • В CSS создан кластер Elasticsearch в режиме security-mode, и его статус — доступен.
  • Сервис LDAP, находящийся в той же VPC, что и кластер Elasticsearch, а также необходимые пользовательские данные подготовлены. Подробнее см документ OpenLDAP: Руководство быстрого начала.

Доступ к кластеру

  1. Установите службу LDAP на ECS. Если служба LDAP и данные пользователей уже подготовлены, пропустите этот шаг.

    1. Создайте ECS. ECS должен работать под Windows OS и находиться в том же VPC и группе безопасности, что и security-mode Elasticsearch кластер CSS. Запущенный на ECS Windows Server предоставляет встроенную службу Active Directory, поддерживающую протокол LDAP.
    2. Войдите в ECS, и включите службу Active Directory. Создайте домен, администратора, пользователей и группы пользователей.

  2. Измените настройки параметров security-mode Elasticsearch кластера в CSS. Настройте статический параметр в elasticsearch.yml для подключения кластера к службе LDAP.

    1. Войдите в консоль управления CSS.
    2. В левой навигационной панели выберите Clusters > Elasticsearch.
    3. В списке кластеров нажмите на имя целевого кластера. Отображается страница информации о кластере.
    4. Выберите Настройки кластера > Настройки параметров, и нажмите Редактировать. Развернуть Пользовательский, и добавьте следующий параметр и значение.
      • Параметр: opendistro_security.unsupported.restapi.allow_securityconfig_modification
      • Значение: true
    5. Затем нажмите Подтвердить. В отображаемом диалоговом окне подтвердите настройки, отметьте флажок с надписью "I understand that the modification will take effect after the cluster is restarted." и нажмите Да.

      Если Статус равен Успешно в списке изменений параметров изменение сохранено. До 20 записей об изменениях может быть отображено.

    6. После сохранения изменения нажмите Перезапуск в правом верхнем углу страницы, чтобы перезапустить кластер, тем самым применив изменение.
      • Вам нужно перезапустить кластер после изменения, либо Конфигурация не обновлена будет отображено в Статус задачи колонке в списке кластеров.
      • Если вы перезапустите кластер после изменения, и Статус задачи отображается Ошибка конфигурации в списке кластеров файл конфигурации параметра не удалось изменить.

  3. Настройте маршрут для кластера Elasticsearch в консоли CSS, чтобы подключить кластер к службе LDAP.

    1. На странице информации о кластере нажмите Обзор вкладка.
    2. В Конфигурация области, нажмите Добавить маршрут рядом с Маршрут кластера.
    3. В отображаемом диалоговом окне задайте информацию о маршруте.
      Таблица 1 Добавление маршрута

      Параметр

      Описание

      IP-адрес

      Введите IP-адрес LDAP‑сервера. Если используется служба LDAP на ECS, введите IP-адрес ECS.

      Маска подсети

      Введите маску подсети LDAP‑сервера. Если используется служба LDAP на ECS, введите маску подсети ECS.

    4. Нажмите OK.

  4. Настройте LDAP-аутентификацию для кластера Elasticsearch в режиме безопасности.

    1. На странице информации о кластере нажмите Kibana в правом верхнем углу, чтобы войти в Kibana.
    2. В навигационной панели слева выберите Dev Tools.
    3. Выполните следующие команды для настройки LDAP-аутентификации.
      Note
      • Концепции, используемые в протоколе доступа к каталогу X.500 (включая LDAP):
        • CN = Общее имя
        • OU = Организационная единица
        • DC = Компонент домена
        • DN = Уникальное имя

        CN, OU и DC должны быть указаны в правильном порядке. В противном случае аутентификация завершится неудачей.

      • Файл конфигурации состоит из двух частей: authc и authz.
        • authc (аутентификация): проверяет, действительно ли пользователь является тем, за кого себя выдаёт (проверка пароля).
        • authz (авторизация): проверяет, к чему текущий пользователь имеет доступ.
      PUT _opendistro/_security/api/securityconfig/config
      {
      "dynamic": {
      "authc": {
      "basic_internal_auth_domain": {
      "description": "Authenticate via HTTP Basic against internal users database",
      "http_enabled": true,
      "transport_enabled": true,
      "order": 1,
      "http_authenticator": {
      "type": "basic",
      "challenge": true
      },
      "authentication_backend": {
      "type": "intern"
      }
      },
      "ldap": {
      "description": "Authenticate via LDAP or Active Directory",
      "http_enabled": true,
      "transport_enabled": true,
      "order": 2,
      "http_authenticator": {
      "type": "basic",
      "challenge": false
      },
      "authentication_backend": {
      "type": "ldap",
      "config": {
      "enable_ssl": false,
      "enable_start_tls": false,
      "enable_ssl_client_auth": false,
      "verify_hostnames": true,
      "hosts": ["10.0.XXX.XXX:389"],
      "bind_dn": "CN=adminAD,DC=test,DC=ldap,DC=com",
      "password": "<password>",
      "userbase": "OU=ITDepartment,DC=test,DC=ldap,DC=com",
      "usersearch": "(sAMAccountName={0})",
      "username_attribute": "uid"
      }
      }
      }
      },
      "authz": {
      "roles_from_myldap": {
      "description": "Authorize via LDAP or Active Directory",
      "http_enabled": true,
      "transport_enabled": true,
      "authorization_backend": {
      "type": "ldap",
      "config": {
      "enable_ssl": false,
      "enable_start_tls": false,
      "enable_ssl_client_auth": false,
      "verify_hostnames": true,
      "hosts": ["10.0.XXX.XXX:389"],
      "bind_dn": "CN=adminAD,DC=test,DC=ldap,DC=com",
      "password": "<password>",
      "rolebase": "OU=groups,DC=test,DC=ldap,DC=com",
      "rolesearch": "(member={0})",
      "userroleattribute": null,
      "userrolename": "disabled",
      "rolename": "CN",
      "resolve_nested_roles": true,
      "userbase": "OU=ITDepartment,DC=test,DC=ldap,DC=com",
      "usersearch": "(uid={0})"
      }
      }
      }
      }
      }
      }

      Параметры в Таблица 2 необходимо изменить в зависимости от реальной среды.

      Таблица 2 Описание параметра

      Параметр

      Описание

      хосты

      Адрес службы LDAP. Номер порта 389. Если используется служба LDAP на ECS, введите IP‑адрес ECS.

      bind_dn

      Это аналогично LDAP‑имени пользователя (CN - OU - DC) и используется для доступа к серверу LDAP. Выберите имя пользователя из данных пользователя службы LDAP.

      пароль

      Пароль LDAP‑пользователя, настроенного с помощью bind_dn.

      userbase

      После подключения сервиса LDAP получается DN, к которому принадлежит пользователь. В этом примере вся пользовательская информация в ITDepartment каталог синхронизируется.

      rolebase

      Набор разрешений, которые можно настроить для userbase группы пользователей сервиса LDAP.

  5. Настройте сопоставление разрешений LDAP‑пользователей и разрешений Elasticsearch в кластере с режимом безопасности Elasticsearch для включения тонко гранулированного контроля доступа.

    Группа разрешений rolebase LDAP‑сервера должна быть сопоставлена ролям в кластере Elasticsearch. Рисунок 1 иллюстрирует сопоставление. Для получения деталей о конфигурации см Создание пользователей для кластера Elasticsearch и предоставление доступа к кластеру.

    Рисунок 1 Сопоставление разрешений


    1. В консоли Kibana разверните меню в левом верхнем углу и выберите Безопасность. Эта Безопасность страница отображается.
    2. Нажмите Роли чтобы перейти на страницу ролей Open Distro Security. Нажмите Создать роль, установите Имя, Разрешения кластера, Разрешения индекса, и Разрешения Тенанта. Затем нажмите Сохранить определение роли чтобы сохранить настройки роли. Параметры указаны ниже:
      • Имя (имя роли)
      • Разрешения кластера
      • Разрешения индекса
      • Разрешения тенанта
    3. Щелкните только что созданную роль, выберите Сопоставленные пользователи, введите группу разрешений службы LDAP в Роли бэкенда, и нажмите Сопоставить.
    4. Проверьте результат конфигурации.

      Рисунок 2 Сопоставление разрешений


    5. Повторить 5.b к 5.d для сопоставления других групп разрешений.

  6. Войдите в Kibana, используя LDAP‑пользователя, чтобы проверить конфигурацию.

    1. Войдите в консоль управления CSS.
    2. В навигационной панели слева выберите Clusters > Elasticsearch.
    3. В списке кластеров найдите целевой кластер и щелкните Kibana в Операция столбец. Используйте LDAP‑пользователя, чтобы войти в консоль Kibana.

      Если вход выполнен успешно, конфигурация считается успешной, и пользователи могут получить доступ к кластеру Elasticsearch через LDAP. Конкретные разрешения, предоставленные пользователям, управляются ролями‑разрешениями, настроенными в Elasticsearch.