Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Защитить Elastic Stack ›Аутентификация пользователей

Аутентификация пользователей по файлам

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

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

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

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

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

Чтобы использовать file или native домены, когда другие домены настроены и включены, необходимо явно настроить их в файле elasticsearch.yml.

Если другие домены не настроены и не включены, вам не нужно явно настраивать 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/7.17/file-realm.html

Spec-Zone.ru

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