Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Руководство [8.17] ›Защита Elastic Stack ›Авторизация пользователей

Авторизация пользователей на основе файлов

Вы можете управлять и аутентифицировать пользователей с помощью встроенного file домена. В file домене пользователи определяются в локальных файлах на каждом узле кластера.

Как администратор кластера, вы несете ответственность за обеспечение того, что те же пользователи определены на каждом узле кластера. Функции безопасности Elastic Stack не предоставляют механизма для гарантии этого. Также следует знать, что вы не можете добавлять или управлять пользователями в file домене через API пользователей, и вы не можете добавлять или управлять ими в Kibana на странице Управление / Безопасность / Пользователи

file домен очень полезен как резервный или восстановительный домен. Например, в случаях, когда кластер не отвечает или индекс безопасности недоступен, или когда вы забыли пароль для своих административных пользователей. В таких ситуациях file домен является удобным выходом — вы можете определить нового admin пользователя в file домене и использовать его для входа и сброса учетных данных всех других пользователей.

Для определения пользователей функции безопасности предоставляют утилиту командной строки users. Эта утилита позволяет добавлять и удалять пользователей, назначать роли пользователей и управлять паролями пользователей.

Настройка домена файлов

Вам не нужно явно настраивать file домен. file и native домены добавляются в цепочку доменов по умолчанию. Если не настроено иное, file домен добавляется первым, за которым следует native домен.

Хотя можно определить несколько экземпляров других доменов, вы можете определить только один file домен на узел.

Все данные о пользователях для file домена хранятся в двух файлах на каждом узле кластера: users и users_roles. Оба файла находятся в ES_PATH_CONF и читаются при запуске.

Файлы users и users_roles управляются локально узлом и не управляются глобально кластером. Это означает, что для типичного кластера из нескольких узлов необходимо внести точно такие же изменения на каждом узле кластера.

Более безопасный подход — внести изменения на одном из узлов и распределить или скопировать файлы на все остальные узлы кластера (как вручную, так и с помощью системы управления конфигурацией, такой как Puppet или Chef).

  1. (Необязательно) Добавьте конфигурацию домена в elasticsearch.yml в пространстве имен xpack.security.authc.realms.file. Как минимум, вы должны установить атрибут order домена.

    Например, следующий фрагмент показывает конфигурацию file домена, в которой order устанавливается в ноль, чтобы домен проверялся в первую очередь:

    xpack:
      security:
        authc:
          realms:
            file:
              file1:
                order: 0

    Вы можете настроить только один домен файлов на узлах Elasticsearch.

  2. Перезапустите Elasticsearch.
  3. Добавьте информацию о пользователях в файл ES_PATH_CONF/users на каждом узле кластера.

    Файл users хранит всех пользователей и их пароли. Каждая строка в файле представляет запись одного пользователя, состоящую из имени пользователя и захешированного и засоленного пароля.

    rdeniro:$2a$10$BBJ/ILiyJ1eBTYoRKxkqbuDEdYECplvxnqQ47uiowE7yGqvCEgj9W
    alpacino:$2a$10$cNwHnElYiMYZ/T3K4PvzGeJ1KbpXZp2PfoQD.gfaVdImnHOwIuBKS
    jacknich:{PBKDF2}50000$z1CLJt0MEFjkIK5iEfgvfnA6xq7lF25uasspsTKSo5Q=$XxCVLbaKDimOdyWgLCLJiyoiWpA/XDMe/xtVgn1r5Sg=

    Для ограничения доступа к краже учетных данных и смягчения последствий компрометации учетных данных, домен файлов хранит пароли и кеширует учетные данные пользователей в соответствии с лучшими практиками безопасности. По умолчанию, хешированная версия учетных данных пользователей хранится в памяти, используя алгоритм хеширования с солью sha-256, а хешированная версия паролей хранится на диске, засоленная и захешированная с помощью алгоритма хеширования bcrypt. Чтобы использовать разные алгоритмы хеширования, см. Алгоритмы хеширования кэша пользователей и паролей.

    Хотя можно напрямую изменить файлы users с помощью любого стандартного текстового редактора, мы настоятельно рекомендуем использовать инструмент elasticsearch-users для внесения необходимых изменений.

    Как администратор кластера, вы несете ответственность за обеспечение того, что те же пользователи определены на каждом узле кластера. Функции безопасности Elasticsearch не предоставляют механизмов для гарантии этого.

  4. Добавьте информацию о ролях в файл ES_PATH_CONF/users_roles на каждом узле кластера.

    Файл users_roles хранит роли, связанные с пользователями. Например:

    admin:rdeniro
    power_user:alpacino,jacknich
    user:jacknich

    Каждая строка сопоставляет роль с запятой, разделенным списком всех пользователей, связанных с этой ролью.

    Для обновления этого файла можно использовать инструмент elasticsearch-users. Необходимо убедиться, что те же изменения вносятся на каждом узле кластера.

  5. (Необязательно) Измените частоту проверки файлов users и users_roles.

    По умолчанию Elasticsearch проверяет эти файлы на наличие изменений каждые 5 секунд. Вы можете изменить это поведение, изменив настройку resource.reload.interval.high в файле elasticsearch.yml (поскольку это распространенная настройка в Elasticsearch, изменение ее значения может повлиять на другие расписания в системе).

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/file-realm.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API