Сопоставление пользователей и групп с ролями
Если вы аутентифицируете пользователей с помощью native или file реально, вы можете управлять назначением ролей, используя API управления пользователями или инструмент командной строки `users` соответственно.
Для других типов реально вам необходимо создать сопоставления ролей, определяющие, какие роли должны быть назначены каждому пользователю на основе имени пользователя, групп или других метаданных.
Когда анонимный доступ включен, роли анонимного пользователя также назначаются всем другим пользователям.
Вы можете определить сопоставления ролей с помощью API или управлять ими с помощью файлов. Эти два источника сопоставления ролей объединяются внутри функций безопасности Elasticsearch, поэтому у одного пользователя могут быть некоторые роли, сопоставленные через API, и другие роли, сопоставленные через файлы.
Пользователи без назначенных ролей не будут авторизованы для любых действий.
Когда вы используете сопоставления ролей, вы назначаете существующие роли пользователям. Доступные роли должны быть добавлены с помощью API управления ролями или определены в файле ролей. Любой метод сопоставления ролей может использовать любой метод управления ролями. Например, при использовании API сопоставления ролей вы можете сопоставить пользователей с ролями, управляемыми через API, и ролями, управляемыми через файлы (и наоборот для сопоставлений ролей на основе файлов).
Реали PKI, LDAP, Kerberos, OpenID Connect и SAML поддерживают использование реально авторизации как альтернативу сопоставлению ролей.
Использование API сопоставления ролей
Вы можете определить сопоставления ролей с помощью API добавления сопоставления ролей.
Использование файлов сопоставления ролей
Чтобы использовать сопоставления ролей на основе файлов, вы должны настроить сопоставления в файле YAML и скопировать его на каждый узел кластера. Инструменты, такие как Puppet или Chef, могут помочь с этим.
По умолчанию сопоставления ролей хранятся в ES_PATH_CONF/role_mapping.yml, где ES_PATH_CONF является ES_HOME/config (установки zip/tar) или /etc/elasticsearch (установки пакетов). Чтобы указать другое расположение, вы настраиваете параметр files.role_mapping в настройках Active Directory, LDAP и PKI в elasticsearch.yml.
В файле сопоставления ролей роли безопасности являются ключами, а группы и пользователи — значениями. Сопоставления могут иметь взаимосвязь «многие ко многим». Когда вы сопоставляете роли с группами, роли пользователя в этой группе — это комбинация ролей, назначенных этой группе, и ролей, назначенных этому пользователю.
По умолчанию Elasticsearch проверяет файлы сопоставления ролей на наличие изменений каждые 5 секунд. Вы можете изменить это поведение по умолчанию, изменив параметр resource.reload.interval.high в файле elasticsearch.yml. Поскольку это общий параметр в Elasticsearch, изменение его значения может повлиять на другие расписания в системе.
Хотя API сопоставления ролей является предпочтительным способом управления сопоставлениями ролей, использование файла role_mapping.yml становится полезным в нескольких случаях:
- Если вы хотите определить фиксированные сопоставления ролей, которые никто (кроме администратора с физическим доступом к узлам Elasticsearch) не сможет изменить.
- Если администрирование кластера зависит от пользователей из внешних реально и этим пользователям необходимо назначить роли, даже когда кластер находится в состоянии RED. Например, администратор, который аутентифицируется через LDAP или PKI и получает роль администратора, чтобы он мог выполнять корректирующие действия.
Однако обратите внимание, что файл role_mapping.yml предоставляется как минимальная функция администрирования и не предназначен для покрытия и использования для определения ролей для всех случаев использования.
Вы не можете просматривать, редактировать или удалять роли, определенные в файлах сопоставления ролей, используя API сопоставления ролей.
Детали специфичные для реально
Реали Active Directory и LDAP
Для указания пользователей и групп в сопоставлениях ролей используются их отличительные имена (DN). DN — это строка, которая однозначно идентифицирует пользователя или группу, например "cn=John Doe,cn=contractors,dc=example,dc=com".
Функции безопасности Elasticsearch поддерживают только группы безопасности Active Directory. Вы не можете сопоставлять распределительные группы с ролями.
Например, следующий фрагмент использует метод на основе файла для сопоставления группы admins с ролью monitoring и сопоставления пользователя John Doe, группы users и группы admins с ролью user.
monitoring: - "cn=admins,dc=example,dc=com" user: - "cn=John Doe,cn=contractors,dc=example,dc=com" - "cn=users,dc=example,dc=com" - "cn=admins,dc=example,dc=com"
| Имя роли. | |
| Отличительное имя группы LDAP или группы безопасности Active Directory. | |
| Отличительное имя пользователя LDAP или Active Directory. |
Вы можете использовать API сопоставления ролей для определения эквивалентных сопоставлений следующим образом:
PUT /_security/role_mapping/admins
{
"roles" : [ "monitoring", "user" ],
"rules" : { "field" : { "groups" : "cn=admins,dc=example,dc=com" } },
"enabled": true
} PUT /_security/role_mapping/basic_users
{
"roles" : [ "user" ],
"rules" : { "any" : [
{ "field" : { "dn" : "cn=John Doe,cn=contractors,dc=example,dc=com" } },
{ "field" : { "groups" : "cn=users,dc=example,dc=com" } }
] },
"enabled": true
} Реали PKI
Реали PKI поддерживают сопоставление пользователей с ролями, но вы не можете сопоставлять группы, так как реали PKI не имеет понятия о группе.
Вот пример использования сопоставления на основе файла:
monitoring: - "cn=Admin,ou=example,o=com" user: - "cn=John Doe,ou=example,o=com"
Следующий пример создает эквивалентные сопоставления с помощью API:
PUT /_security/role_mapping/admin_user
{
"roles" : [ "monitoring" ],
"rules" : { "field" : { "dn" : "cn=Admin,ou=example,o=com" } },
"enabled": true
} PUT /_security/role_mapping/basic_user
{
"roles" : [ "user" ],
"rules" : { "field" : { "dn" : "cn=John Doe,ou=example,o=com" } },
"enabled": true
}
© 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/mapping-roles.html