API создания или обновления ролей
Добавляет и обновляет роли в родном домене.
Запрос
POST /_security/role/<name>
PUT /_security/role/<name>
Предварительные условия
- Для использования этого API необходимо обладать как минимум правом доступа к кластеру
manage_security.
Описание
API управления ролями, как правило, предпочтительнее, чем использование управления ролями на основе файлов. API создания или обновления ролей не может обновлять роли, определённые в файлах ролей.
Параметры пути
-
name - (строка) Имя роли.
Тело запроса
Следующие параметры могут быть указаны в теле запроса PUT или POST и относятся к добавлению роли:
-
applications -
(список) Список записей привилегий приложения.
-
application(обязательно) - (строка) Имя приложения, к которому относится эта запись
-
privileges - (список) Список строк, где каждый элемент — имя привилегии или действия приложения.
-
resources - (список) Список ресурсов, к которым применяются привилегии.
-
-
cluster - (список) Список привилегий кластера. Эти привилегии определяют действия на уровне кластера, которые пользователи с данной ролью могут выполнять.
-
global - (объект) Объект, определяющий глобальные привилегии. Глобальная привилегия — это вид привилегии кластера, которая учитывает запрос. Поддержка глобальных привилегий в настоящее время ограничена управлением привилегиями приложений. Это поле необязательно.
-
indices -
(список) Список записей разрешений на индексы.
-
field_security - (объект) Поля документов, к которым владельцы роли имеют доступ для чтения. Более подробную информацию можно найти в разделе о настройке безопасности на уровне полей и документов.
-
names(обязательно) - (список) Список индексов (или шаблонов имён индексов), к которым применяются разрешения в этой записи.
-
privileges(обязательно) - (список) Разрешения на уровне индекса, которые владельцы роли имеют на указанных индексах.
-
query - Запрос поиска, определяющий документы, к которым владельцы роли имеют доступ для чтения. Документ внутри указанных индексов должен соответствовать этому запросу, чтобы он был доступен владельцам роли.
-
-
metadata - (объект) Необязательные метаданные. Внутри объекта
metadataключи, начинающиеся с_, зарезервированы для использования системой. -
run_as - (список) Список пользователей, от имени которых владельцы данной роли могут подменять себя. Более подробную информацию можно найти в разделе о выполнении запросов от имени других пользователей.
Для получения дополнительной информации см. раздел об определении ролей.
Примеры
В следующем примере добавляется роль с именем my_admin_role:
POST /_security/role/my_admin_role
{
"cluster": ["all"],
"indices": [
{
"names": [ "index1", "index2" ],
"privileges": ["all"],
"field_security" : { // optional
"grant" : [ "title", "body" ]
},
"query": "{\"match\": {\"title\": \"foo\"}}" // optional
}
],
"applications": [
{
"application": "myapp",
"privileges": [ "admin", "read" ],
"resources": [ "*" ]
}
],
"run_as": [ "other_user" ], // optional
"metadata" : { // optional
"version" : 1
}
} Успешный вызов возвращает JSON-структуру, показывающую, была ли роль создана или обновлена.
{
"role": {
"created": 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/security-api-put-role.html