„Elasticsearch to niezwykle wszechstronny i potężny silnik wyszukiwania i analizy. Może szybko spożywać, organizować, sortować, agregować i zarządzać dużymi ilościami danych tekstowych.
Mimo to jedna z najwybitniejszych funkcji ElasticSearch i całego ekosystemu są funkcje bezpieczeństwa Ironclad. ElasticSearch zawiera takie funkcje, jak podpisanie żądań HTTP i umożliwia tylko uwierzytelnieni użytkownikom wykonywanie operacji w klastrze.
Inną funkcją bezpieczeństwa w ElasticSearch jest użycie użytkowników i ról. ElasticSearch umożliwia przypisanie określonych ról użytkownikom w klastrze. Są one następnie wykorzystywane do ustalenia, jakie działania nazwa użytkownika może wykonywać w klastrze.
ElasticSearch przypisuje domyślną rolę wszystkim użytkownikom utworzonym w klastrze. Domyślna rola pozwala użytkownikom uzyskać dostęp do punktu końcowego Auth, który jest odpowiedzialny za zmianę haseł, pobieranie informacji o użytkownikach itp."
Uwaga: domyślna rola jest również przypisywana anonimowym użytkownikom.
Podstawą tego samouczka jest podanie podstaw ról ElasticSearch. Korzystając z tego samouczka, odkryjesz, jak pobrać role w dziedzinie natywnej Elasticsearch i wyświetlić role przypisane do określonej nazwy użytkownika.
Zanurzmy się.
Elasticsearch Uzyskaj role API
Używamy interfejsu API GET Roles do pobierania informacji o role w klastrze ElasticSearch. Składnia żądania jest jak pokazana:
Get /_Security /rola
Powyższe zapytanie powinno zwrócić wszystkie role w systemie.
Aby pobrać informacje o konkretnej roli, możesz użyć składni, jak pokazano:
Get/_Security/rola/
Uwaga: ten interfejs API wymaga od użytkownika uprawnienia do zabezpieczeń zarządzania.
Jeśli żądanie się powiedzie, zapytanie powinno zwrócić szereg ról.
Przykład 1 - Odzyskaj wszystkie role w klastrze
Poniższe żądanie przykładowe pobudzi wszystkie role w klastrze ElasticSearch:
curl -xget "http: // localhost: 9200/_Security/Rola?Pretten = true "-h" kbn -xsrf: raportowanie "
Przykładowe dane wyjściowe pokazano poniżej:
„apm_user”:
„klaster”: [],
„indeksy”: [
"nazwy": [
„APM-*”
],
"przywileje": [
"Czytać",
„View_index_metadata”
],
„Zezwalaj_restriste_indices”: False
,
"nazwy": [
„Logs-kwietnia.*”
],
"przywileje": [
"Czytać",
„View_index_metadata”
],
„Zezwalaj_restriste_indices”: False
,
"nazwy": [
„Logs-APM-*”
],
"przywileje": [
"Czytać",
„View_index_metadata”
],
„Zezwalaj_restriste_indices”: False
,
"nazwy": [
„Metryki-kwiecień.*”
],
"przywileje": [
"Czytać",
„View_index_metadata”
],
„Zezwalaj_restriste_indices”: False
,
"nazwy": [
„Metryki-APM-*”
],
"przywileje": [
"Czytać",
„View_index_metadata”
],
„Zezwalaj_restriste_indices”: False
,
"nazwy": [
„Ślady-kwiecień.*”
],
"przywileje": [
"Czytać",
„View_index_metadata”
],
„Zezwalaj_restriste_indices”: False
,
UWAGA: Powyższe wyjście zostało obcięte dla zakresu tego samouczka.
Przykład 2 - Uzyskaj informacje o konkretnej roli
Poniższy przykład zwraca informacje o roli kibana_admin.
curl -xget "http: // localhost: 9200/_security/role/kibana_admin" -h "kbn -xsrf: raportowanie"
Powstałe informacje o roli są takie jak pokazano:
„kibana_admin”:
„klaster”: [],
„Wskaźniki”: [],
"Aplikacje": [
„Aplikacja”: „Kibana-.kibana ",
"przywileje": [
"Wszystko"
],
"zasoby": [
„*”
]
],
"Uruchom jako": [],
„Metadata”:
„_ RESERVED”: True
,
„Transient_metadata”:
„Włączone”: prawda
Odzyskaj informacje o roli w YAML
Domyślnie interfejs API Get Roles zwróci wynik w formacie JSON. Możesz jednak wybrać inny format za pomocą parametru formatu.
Składnia jest jak pokazana:
Get /_Security /rola?format = JSON/YAML
Na przykład, aby uzyskać informacje o roli kibana_admin w formacie YAML, możemy uruchomić:
curl -xget "http: // localhost: 9200/_Security/ROLE/KIBANA_ADMIN?format = yaml "-h" kbn -xsrf: raportowanie "
Wynikowe wyjście:
---
kibana_admin:
klaster: []
wskaźniki: []
Aplikacje:
- Zastosowanie: „Kibana-.kibana "
przywileje:
- "Wszystko"
zasoby:
- „*”
Uruchom jako: []
metadane:
_ RESERVED: True
Transient_metadata:
Włączone: prawda
Wyświetl role dla określonego użytkownika
Jeśli chcesz wyświetlić informacje o konkretnej nazwie użytkownika (w tym ich role), możesz użyć żądania jak pokazano:
Get /_Security /User
Załóżmy na przykład, że mamy nazwę użytkownika „Linuxhint”, możemy odzyskać te informacje o użytkowniku, jak pokazano:
curl -xget "http: // locAhost: 9200/_Security/User/Linuxhint?format = yaml "-h" kbn -xsrf: raportowanie "
Powyższe żądanie powinno zwrócić informacje o użytkowniku w formacie YAML, jak pokazano:
---
Linuxhint:
Nazwa użytkownika: „Linuxhint”
Role:
- "widz"
- „Watcher_user”
Full_name: „Linuxhint.com "
e -mail: „[email protected] "
metadane:
Włączone: prawda
Widzimy, że użytkownik ma role przeglądarki i Watcher_user.
Zobacz role w kibanie
Jeśli nie chcesz korzystać z interfejsu API Role Cat, możesz wyświetlić role elasticsearch w kibanie, nawigując do zarządzania -> Zarządzanie stosami.
Następnie przejdź do bezpieczeństwa -> role
Następnie możesz przeglądać role i zarządzać role.
Wniosek
W tym artykule nauczyłeś się korzystać z interfejsu API Role ElasticSearch, aby przeglądać informacje o konkretnych rolach w klastrze. Odkryłeś także, jak wyświetlić role danej nazwy użytkownika za pomocą interfejsu API użytkownika.
Dziękuje za przeczytanie!