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

Создание пользователей для кластера Elasticsearch и предоставление доступа к кластеру

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

CSS ограничивает доступ к кластерам в режиме security-mode только авторизованными пользователями. При создании кластера в режиме security-mode необходимо создать учетную запись администратора. Затем эта учетная запись администратора может использовать Kibana для добавления новых пользователей в кластер и предоставления им необходимых разрешений. В данном руководстве в качестве примера используется Kibana 7.10.2 для описания того, как с помощью Kibana предоставить пользователям доступ к кластеру в режиме security-mode.

Предыстория

CSS использует opendistro_security плагин для обеспечения возможностей кластера безопасности. opendistro_security плагин построен на основе модели RBAC. RBAC включает три ключевые концепции: пользователь, действие и роль. RBAC упрощает взаимосвязь между пользователями и действиями, упрощает управление разрешениями и облегчает расширение и обслуживание прав. Рисунок 1 показывает взаимосвязь между тремя.

Рисунок 1 Пользователь, действие и роль


Таблица 1 Концепции

Концепция

Описание

Пользователь

Пользователь может отправлять запросы операций в кластер Elasticsearch. Пользователь имеет учетные данные, такие как имя пользователя и пароль, а также ноль или несколько ролей бекенда и пользовательских атрибутов.

Роль

Роль — это комбинация разрешений или групп действий, включая разрешения операций над кластерами, индексами, документами или полями.

Разрешение

Одинарное разрешение, например, создание индекса (например, indices:admin/create).

Сопоставление ролей

Пользователю будет назначена одна или несколько ролей после успешной аутентификации. Сопоставление ролей — это привязка роли к пользователю (или роли бекенда). Например, сопоставление от kibana_user (role) to Bob (user) означает, что Bob получает все разрешения kibana_user после аутентификации. Аналогично, сопоставление от all_access (роль) к админ (backend роль) означает, что любой пользователь с backend ролью админ (из LDAP/Active Directory сервера) имеет все разрешения роли all_access после аутентификации. Вы можете сопоставлять каждую роль нескольким пользователям или backend ролям.

Группа действий

Группа действий — это набор разрешений. Например, предопределённые SEARCH группа действий предоставляет ролям разрешения на использование _search и _msearch APIs.

Помимо модели RBAC, Elasticsearch также использует концепцию под названием tenant. Модель RBAC решает проблему авторизации на уровне пользователя, тогда как модель tenant решает проблему совместного использования данных и ресурсов между различными тенантами. Внутри пространства тенанта тенанты могут совместно использовать информацию, такую как дашборды и шаблоны индексов.

По умолчанию пользователи могут видеть только шаблоны индексов и дашборды в собственном приватном пространстве тенанта. Когда новый пользователь тест добавлен, система автоматически создает индекс с именем .kibana_xxx_test. Данные в приватном пространстве этого пользователя будут храниться в этом индексе. Аналогично, данные приватного пространства администратора хранятся в .kibana_xxx_admin индекс. Чтобы поделиться шаблоном индекса или дашбордом с другими тенантами, вы можете создать их в глобальном пространстве тенанта. Другие пользователи могут получить доступ к общему ресурсу только переключившись в глобальное пространство тенанта.

В консоли Kibana вы можете настроить разрешения пользователей на кластере Elasticsearch в разделе Безопасность для реализации детального контроля доступа на четырех уровнях: кластер, индекс, документ и поле.

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

С помощью сопоставления ролей вы можете настроить участников каждой роли и назначать роли пользователям на основе имен пользователей, backend ролей и имён хостов. Для каждой роли вы можете настроить разрешения кластера, индекса и документа, а также разрешение на использование Kibana.

Для получения дополнительной информации о конфигурации безопасности для кластера в режиме security‑mode и подробного руководства см. официальный документ Elasticsearch здесь.

Ограничения

  • Вы можете настроить имя пользователя, имя роли и имя тенанта в Kibana.
  • Интерфейс Kibana GUI различается в зависимости от версии Kibana. В качестве примера здесь используется Kibana 7.10.2.

Создание пользователя и предоставление разрешений

  1. Войдите в консоль управления CSS.
  2. В левой навигационной панели выберите Кластеры > Elasticsearch.
  3. В списке кластеров найдите целевой кластер и нажмите Kibana в Операция столбце, чтобы войти в Kibana, используя учетную запись администратора.
    • Имя пользователя: admin (имя учетной записи администратора по умолчанию)
    • Пароль: Введите пароль администратора, который вы задали при создании кластера в режиме безопасности.
  4. После успешного входа выберите Безопасность в навигационном дереве слева от страницы операций Kibana. The Безопасность страница отображается.
  5. Добавить нового пользователя тест для кластера в режиме безопасности.
    1. Щелкните Внутренние пользователи в области навигации.
    2. На Внутренние пользователи странице, щелкните Создать внутреннего пользователя. Страница создания нового пользователя отображается.

      Рисунок 2 Создать внутреннего пользователя


    3. На отображаемой странице, задайте Имя пользователя, Пароль, и Повторно введите пароль. Имя пользователя тест используется в качестве примера здесь.

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

      • Роли бэкенда: используется для сопоставления внешних пользователей (например, из LDAP или SAML) с ролями безопасности Open Distro.
      • Атрибуты: используется для более детального описания пользователей. Более важно, что они могут быть использованы для включения контроля доступа на уровне документов поверх разрешений индекса роли. Это делает возможным выполнение динамических запросов безопасности на уровне документов (DLS) на основе атрибутов пользователей.
    4. Нажмите Создать. После успешного создания новый пользователь отображается в списке пользователей.
  6. Создайте роль с именем role_test и назначьте ей разрешения.
    1. Нажмите Роли в Безопасность. Система имеет предустановленные роли. Чтобы просмотреть разрешения каждой роли, нажмите Узнать больше на странице. Если предустановленные роли уже могут удовлетворять ваши потребности, рекомендуется использовать эти предустановленные роли.
    2. На Роли странице, нажмите Создать роль.
    3. Установите имя роли, например, role_test.

      Рисунок 3 Настройка имени роли


    4. На Разрешения кластера странице, установите разрешения кластера в соответствии с требованиями сервиса. Если они не настроены для роли, роль не будет иметь никаких разрешений уровня кластера. Далее используется разрешение cluster_monitor в качестве примера.
      Note

      В Elasticsearch разрешение cluster_monitor позволяет пользователям мониторить и наблюдать за статусом кластера, но не выполнять операции, которые могут изменить статус кластера. Конкретно, разрешение cluster_monitor позволяет пользователям выполнять следующие операции:

      • Проверьте статус и состояние кластера.
      • Проверьте узлы кластера.
      • Просмотрите статистику кластера.
      • Проверьте ожидающие задачи кластера.
      • Проверьте информацию о восстановлении кластера, сегментах и индексах.

      Рисунок 4 Разрешения кластера


    5. Настройте разрешения индекса на Разрешения индекса страница. Эта конфигурация является необязательной. Она позволяет определить разрешения пользователей, назначенных этой роли, на конкретных индексах.
      • Индекс: Установите имя индекса. Например, my_store.
        Note

        Используйте разные имена для индекса и пользователя.

      • Разрешения индекса: Установите разрешения индекса для предоставления.
    6. Разрешения Тенанта: Установите разрешения тенанта. Эта конфигурация является необязательной. Тенанты в Kibana — это пространства для сохранения шаблонов индексов, визуализаций, дашбордов и других объектов Kibana. По умолчанию все пользователи Kibana имеют доступ к двум тенантам: Private и Global. Глобальный тенант доступен всем пользователям Kibana. Приватный тенант эксклюзивен для каждого пользователя и не может быть общим. Подробнее о разрешениях тенанта, нажмите Узнать больше на странице.
    7. Нажмите Создать для сохранения настроек роли. Новая роль отображается в Роли списке.
  7. Сопоставьте роль пользователю, чтобы назначить разрешения этому пользователю.
    1. Выберите Безопасность > Роли, и нажмите role_test. Страница с деталями роли отображается.
    2. Нажмите Сопоставленные пользователи вкладку, затем нажмите Сопоставить пользователя.
    3. На Сопоставить пользователя странице, выберите пользователя test созданный ранее из Пользователи список.
    4. Нажмите Сопоставить.

  8. Проверьте, что разрешения пользователя вступили в силу.
    1. Войдите в Kibana как пользователь test.
    2. Щелкните Dev Tools в дереве навигации слева.
    3. Запустите GET /_cluster/health?pretty команда для проверки состояния кластера. Возвращается код 200. Можно запросить базовую информацию о кластере, указывая, что у пользователя есть разрешение проверять статус кластера.
    4. Запустите PUT /my_test команда для создания индекса. Возвращается код 403, указывая, что пользователь не имеет права создавать индексы.

    Мы видим, что пользователь test имеет только разрешение проверять статус кластера, но не может создавать индексы. Конфигурация выполнена успешно.

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