„Elasticsearch to niezwykle wszechstronny i potężny silnik wyszukiwania i analizy. Może szybko pozyskiwać, organizować, sortować, agregować i zarządzać dużymi ilościami danych tekstowych.
Mimo wszystko jedną z najbardziej wyróżniających się funkcji Elasticsearch i całego jego ekosystemu są żelazne funkcje bezpieczeństwa. Elasticsearch zawiera funkcje, takie jak podpisywanie żądań HTTP i umożliwia tylko uwierzytelnionym użytkownikom wykonywanie operacji w klastrze.
Inną funkcją bezpieczeństwa w Elasticsearch jest wykorzystanie użytkowników i ról. Elasticsearch umożliwia przypisanie określonych ról użytkownikom w klastrze. Są one następnie używane do określenia, jakie działania użytkownik może wykonać w klastrze.
Elasticsearch przypisze domyślną rolę wszystkim użytkownikom utworzonym w klastrze. Domyślna rola umożliwia użytkownikom dostęp do punktu końcowego uwierzytelniania, który jest odpowiedzialny za zmianę haseł, pobieranie informacji o użytkowniku itp.”
UWAGA: Rola domyślna jest również przypisywana użytkownikom anonimowym.
Rdzeniem tego samouczka jest przedstawienie podstaw ról Elasticsearch. Korzystając z tego samouczka, dowiesz się, jak pobrać role w natywnej dziedzinie Elasticsearch i wyświetlić role przypisane do określonej nazwy użytkownika.
Zanurzmy się.
Elasticsearch Pobierz role API
Używamy interfejsu API Get Roles do pobierania informacji o rolach w klastrze Elasticsearch. Składnia żądania jest następująca:
DOSTAWAĆ / _bezpieczeństwo / rola
Powyższe zapytanie powinno zwrócić wszystkie role w systemie.
Aby pobrać informacje o określonej roli, możesz użyć składni, jak pokazano:
DOSTAWAĆ / _bezpieczeństwo / rola /< Nazwa >
UWAGA: Ten interfejs API wymaga, aby użytkownik miał uprawnienie manage_security w klastrze.
Jeśli żądanie się powiedzie, zapytanie powinno zwrócić tablicę ról.
Przykład 1 – Odzyskaj wszystkie role w klastrze
Poniższe przykładowe żądanie pobierze wszystkie role w klastrze Elasticsearch:
kędzior -XGET “http://localhost:9200/_security/role?pretty=true” -H 'kbn-xsrf: raportowanie'
Przykładowe wyjście pokazano poniżej:
„użytkownik_apm” : {
'grupa' : [ ] ,
„indeksy” : [
{
'nazwy' : [
„apm-*”
] ,
'przywileje' : [
'czytać' ,
„view_index_metadata”
] ,
'allow_restricted_indices' : fałszywy
} ,
{
'nazwy' : [
'okno ok.*'
] ,
'przywileje' : [
'czytać' ,
„view_index_metadata”
] ,
'allow_restricted_indices' : fałszywy
} ,
{
'nazwy' : [
'okno-ok-*'
] ,
'przywileje' : [
'czytać' ,
„view_index_metadata”
] ,
'allow_restricted_indices' : fałszywy
} ,
{
'nazwy' : [
„metryki-apm.*”
] ,
'przywileje' : [
'czytać' ,
„view_index_metadata”
] ,
'allow_restricted_indices' : fałszywy
} ,
{
'nazwy' : [
'metryki-apm-*'
] ,
'przywileje' : [
'czytać' ,
„view_index_metadata”
] ,
'allow_restricted_indices' : fałszywy
} ,
{
'nazwy' : [
„ślady-apm.*”
] ,
'przywileje' : [
'czytać' ,
„view_index_metadata”
] ,
'allow_restricted_indices' : fałszywy
} ,
UWAGA: Powyższe dane wyjściowe zostały obcięte na potrzeby tego samouczka.
Przykład 2 – Uzyskaj informacje o określonej roli
Poniższy przykład zwraca informacje o roli kibana_admin.
kędzior -XGET „http://localhost:9200/_security/role/kibana_admin” -H 'kbn-xsrf: raportowanie'
Wynikowe informacje o roli są następujące:
„kibana_admin” : {
'grupa' : [ ] ,
„indeksy” : [ ] ,
'Aplikacje' : [
{
'aplikacja' : 'kibana-.kibana' ,
'przywileje' : [
'wszystko'
] ,
'Surowce' : [
„*”
]
}
] ,
'Uruchom jako' : [ ] ,
„metadane” : {
'_skryty' : PRAWDA
} ,
'przejściowe_metadane' : {
'włączony' : PRAWDA
}
}
}
Pobierz informacje o roli w YAML
Domyślnie interfejs API pobierania ról zwróci wynik w formacie JSON. Możesz jednak wybrać inny format za pomocą parametru format.
Składnia jest następująca:
DOSTAWAĆ / _bezpieczeństwo / rola? format =json / jamla
Na przykład, aby pobrać informacje o roli kibana_admin w formacie YAML, możemy uruchomić:
Wynikowy wynik:
kibana_admin:
grupa: [ ]
indeksy: [ ]
Aplikacje:
- aplikacja: 'kibana-.kibana'
przywileje:
- 'wszystko'
Surowce:
- „*”
Uruchom jako: [ ]
metadane:
_skryty: PRAWDA
przejściowe_metadane:
włączony: PRAWDA
Wyświetl role dla określonego użytkownika
Jeśli chcesz wyświetlić informacje o określonej nazwie użytkownika (w tym o ich rolach), możesz użyć żądania, jak pokazano:
DOSTAWAĆ / _bezpieczeństwo / użytkownik
Załóżmy na przykład, że mamy nazwę użytkownika „linuxhint”, możemy pobrać te informacje o użytkowniku, jak pokazano:
Powyższe żądanie powinno zwrócić informacje o użytkowniku w formacie YAML, jak pokazano:
podpowiedź:
Nazwa Użytkownika: 'linux'
role:
- 'widz'
- 'obserwujący_użytkownik'
pełna_nazwa: 'linuxhint.pl'
e-mail: ' [e-maile chronione] '
metadane: { }
włączony: PRAWDA
Widzimy, że użytkownik ma role viewer i watcher_user.
Wyświetl role w Kibana
Jeśli nie chcesz korzystać z interfejsu API ról kota, możesz wyświetlić role Elasticsearch w Kibana, przechodząc do Zarządzanie -> Zarządzanie stosem.
Następnie przejdź do Bezpieczeństwo -> Role
Następnie możesz przeglądać role i nimi zarządzać.
Wniosek
W tym artykule dowiedziałeś się, jak używać interfejsu API ról Elasticsearch do wyświetlania informacji o określonych rolach w klastrze. Odkryłeś również, jak wyświetlić role danej nazwy użytkownika za pomocą interfejsu API użytkownika.
Dziękuje za przeczytanie!