Elasticsearch Получить роли

Elasticsearch Polucit Roli



«Elasticsearch — невероятно универсальная и мощная поисковая и аналитическая система. Он может быстро принимать, систематизировать, сортировать, объединять и управлять большими объемами текстовых данных.

Несмотря на все это, одной из самых выдающихся функций Elasticsearch и всей ее экосистемы являются непревзойденные функции безопасности. Elasticsearch включает в себя такие функции, как подпись HTTP-запросов, и позволяет только аутентифицированным пользователям выполнять операции в кластере.







Еще одна функция безопасности в Elasticsearch — использование пользователей и ролей. Elasticsearch позволяет назначать определенные роли пользователям в кластере. Затем они используются для определения того, какие действия имя пользователя может выполнять в кластере.



Elasticsearch назначит роль по умолчанию всем пользователям, созданным в кластере. Роль по умолчанию позволяет пользователям получать доступ к конечной точке аутентификации, которая отвечает за смену паролей, получение информации о пользователях и т. д.».



ПРИМЕЧАНИЕ. Роль по умолчанию также назначается анонимным пользователям.





Суть этого руководства — дать вам основы ролей Elasticsearch. С помощью этого руководства вы узнаете, как получить роли в собственной области Elasticsearch и просмотреть роли, назначенные определенному имени пользователя.

Давайте углубимся.



Elasticsearch API получения ролей

Мы используем Get Roles API для получения информации о ролях в кластере Elasticsearch. Синтаксис запроса показан ниже:

ПОЛУЧИТЬ / _безопасность / роль


Приведенный выше запрос должен вернуть все роли в системе.

Чтобы получить информацию о конкретной роли, вы можете использовать следующий синтаксис:

ПОЛУЧИТЬ / _безопасность / роль /< имя >


ПРИМЕЧАНИЕ. Этот API требует, чтобы у пользователя была привилегия manage_security в кластере.

Если запрос выполнен успешно, запрос должен вернуть массив ролей.

Пример 1. Получение всех ролей в кластере

Приведенный ниже пример запроса извлечет все роли в кластере Elasticsearch:

завиток -XGET «http://localhost:9200/_security/role?pretty=true» -ЧАС 'kbn-xsrf: отчетность'


Пример вывода показан ниже:

{
'apm_user' : {
'кластер' : [ ] ,
'индексы' : [
{
'имена' : [
'апм-*'
] ,
'привилегии' : [
'читать' ,
'view_index_metadata'
] ,
'allow_restricted_indices' : ЛОЖЬ
} ,
{
'имена' : [
'окно-ок.*'
] ,
'привилегии' : [
'читать' ,
'view_index_metadata'
] ,
'allow_restricted_indices' : ЛОЖЬ
} ,
{
'имена' : [
'окно-приблизительно-*'
] ,
'привилегии' : [
'читать' ,
'view_index_metadata'
] ,
'allow_restricted_indices' : ЛОЖЬ
} ,
{
'имена' : [
'метрики-apm.*'
] ,
'привилегии' : [
'читать' ,
'view_index_metadata'
] ,
'allow_restricted_indices' : ЛОЖЬ
} ,
{
'имена' : [
'метрики-apm-*'
] ,
'привилегии' : [
'читать' ,
'view_index_metadata'
] ,
'allow_restricted_indices' : ЛОЖЬ
} ,
{
'имена' : [
'следы-апм.*'
] ,
'привилегии' : [
'читать' ,
'view_index_metadata'
] ,
'allow_restricted_indices' : ЛОЖЬ
} ,


ПРИМЕЧАНИЕ. Выходные данные выше были усечены для целей данного руководства.

Пример 2. Получение информации об определенной роли

Пример ниже возвращает информацию о роли kibana_admin.

завиток -XGET «http://localhost:9200/_security/role/kibana_admin» -ЧАС 'kbn-xsrf: отчетность'


Результирующая информация о роли выглядит следующим образом:

{
'кибана_админ' : {
'кластер' : [ ] ,
'индексы' : [ ] ,
'Приложения' : [
{
'заявление' : 'кибана-.кибана' ,
'привилегии' : [
'все'
] ,
'Ресурсы' : [
'*'
]
}
] ,
'беги как' : [ ] ,
'метаданные' : {
'_сдержанный' : истинный
} ,
'переходные_метаданные' : {
'включено' : истинный
}
}
}

Получить информацию о роли в YAML

По умолчанию API получения ролей возвращает результат в формате JSON. Однако вы можете выбрать другой формат, используя параметр формата.

Синтаксис такой, как показано:

ПОЛУЧИТЬ / _безопасность / роль? формат =json / батат


Например, чтобы получить информацию о роли kibana_admin в формате YAML, мы можем запустить:

завиток -XGET 'http://localhost:9200/_security/role/kibana_admin?format=yaml' -ЧАС 'kbn-xsrf: отчетность'


Результирующий вывод:

---
кибана_админ:
кластер: [ ]
индексы: [ ]
Приложения:
- заявление: 'кибана-.кибана'
привилегии:
- 'все'
Ресурсы:
- '*'
беги как: [ ]
метаданные:
_сдержанный: истинный
переходные_метаданные:
включено: истинный

Просмотр ролей для конкретного пользователя

Если вы хотите просмотреть информацию об определенном имени пользователя (включая его роли), вы можете использовать запрос, как показано ниже:

ПОЛУЧИТЬ / _безопасность / пользователь


Например, предположим, что у нас есть имя пользователя «linuxhint», мы можем получить информацию об этом пользователе, как показано ниже:

завиток -XGET «http://locahost:9200/_security/user/linuxhint?format=yaml» -ЧАС 'kbn-xsrf: отчетность'


Приведенный выше запрос должен вернуть информацию о пользователе в формате YAML, как показано ниже:

---
линукс подсказка:
имя пользователя: 'линукс'
роли:
- 'зритель'
- 'наблюдатель_пользователь'
ФИО: 'linuxhint.com'
Эл. адрес: ' [электронная почта защищена] '
метаданные: { }
включено: истинный


Мы видим, что у пользователя есть роли viewer и watcher_user.

Просмотр ролей в Кибане

Если вы не хотите использовать API ролей кошек, вы можете просмотреть роли Elasticsearch в Kibana, перейдя в Управление -> Управление стеком.


Затем перейдите в раздел «Безопасность» -> «Роли».


Затем вы можете просматривать роли и управлять ими.

Вывод

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

Спасибо за чтение!