„Elasticsearch je neuvěřitelně všestranný a výkonný vyhledávací a analytický nástroj. Dokáže rychle přijímat, organizovat, třídit, agregovat a spravovat velké množství textových dat.
Navzdory tomu všemu jsou jednou z nejvýraznějších funkcí Elasticsearch a celého jeho ekosystému pevné bezpečnostní prvky. Elasticsearch zahrnuje funkce, jako je podepisování požadavků HTTP, a umožňuje provádět operace na clusteru pouze ověřeným uživatelům.
Další bezpečnostní funkcí v Elasticsearch je použití uživatelů a rolí. Elasticsearch umožňuje přiřadit konkrétní role uživatelům v clusteru. Ty se pak použijí k určení, jaké akce může uživatelské jméno v clusteru provádět.
Elasticsearch přiřadí výchozí roli všem uživatelům vytvořeným v clusteru. Výchozí role umožňuje uživatelům přístup ke koncovému bodu ověřování, který je zodpovědný za změnu hesel, získávání informací o uživatelích atd.
POZNÁMKA: Výchozí role je přiřazena také anonymním uživatelům.
Jádrem tohoto tutoriálu je poskytnout vám základy rolí Elasticsearch. Pomocí tohoto tutoriálu zjistíte, jak načíst role v nativní sféře Elasticsearch a zobrazit role přiřazené ke konkrétnímu uživatelskému jménu.
Pojďme se ponořit.
Elasticsearch Get Roles API
K získávání informací o rolích v clusteru Elasticsearch používáme rozhraní Get Roles API. Syntaxe požadavku je následující:
DOSTAT / _bezpečnostní / role
Výše uvedený dotaz by měl vrátit všechny role v systému.
Chcete-li získat informace o konkrétní roli, můžete použít syntaxi, jak je znázorněno:
DOSTAT / _bezpečnostní / role /< název >
POZNÁMKA: Toto rozhraní API vyžaduje, aby měl uživatel v clusteru oprávnění manage_security.
Pokud je požadavek úspěšný, měl by dotaz vrátit pole rolí.
Příklad 1 – Načtení všech rolí v clusteru
Níže uvedený příklad požadavku načte všechny role v clusteru Elasticsearch:
kučera -XGET „http://localhost:9200/_security/role?pretty=true“ -H 'kbn-xsrf: reporting'
Příklad výstupu je uveden níže:
'apm_user' : {
'shluk' : [ ] ,
'indexy' : [
{
'jména' : [
'apm-*'
] ,
'privilegia' : [
'číst' ,
'view_index_metadata'
] ,
'allow_restricted_indexs' : Nepravdivé
} ,
{
'jména' : [
'okno-cca*'
] ,
'privilegia' : [
'číst' ,
'view_index_metadata'
] ,
'allow_restricted_indexs' : Nepravdivé
} ,
{
'jména' : [
'okno-cca-*'
] ,
'privilegia' : [
'číst' ,
'view_index_metadata'
] ,
'allow_restricted_indexs' : Nepravdivé
} ,
{
'jména' : [
'metrics-apm.*'
] ,
'privilegia' : [
'číst' ,
'view_index_metadata'
] ,
'allow_restricted_indexs' : Nepravdivé
} ,
{
'jména' : [
'metrics-apm-*'
] ,
'privilegia' : [
'číst' ,
'view_index_metadata'
] ,
'allow_restricted_indexs' : Nepravdivé
} ,
{
'jména' : [
'traces-apm.*'
] ,
'privilegia' : [
'číst' ,
'view_index_metadata'
] ,
'allow_restricted_indexs' : Nepravdivé
} ,
POZNÁMKA: Výše uvedený výstup byl pro rozsah tohoto kurzu zkrácen.
Příklad 2 – Získejte informace o konkrétní roli
Níže uvedený příklad vrací informace o roli kibana_admin.
kučera -XGET 'http://localhost:9200/_security/role/kibana_admin' -H 'kbn-xsrf: reporting'
Výsledné informace o roli vypadají takto:
'kibana_admin' : {
'shluk' : [ ] ,
'indexy' : [ ] ,
'aplikace' : [
{
'aplikace' : 'kibana-.kibana' ,
'privilegia' : [
'Všechno'
] ,
'zdroje' : [
'*'
]
}
] ,
'utíkat jako' : [ ] ,
'metadata' : {
'_Rezervováno' : skutečný
} ,
'transient_metadata' : {
'povoleno' : skutečný
}
}
}
Získejte informace o roli v YAML
Ve výchozím nastavení vrátí rozhraní API pro získání rolí výsledek ve formátu JSON. Pomocí parametru format však můžete zvolit jiný formát.
Syntaxe je následující:
DOSTAT / _bezpečnostní / role? formát =json / yaml
Chcete-li například získat informace o roli kibana_admin ve formátu YAML, můžeme spustit:
Výsledný výstup:
kibana_admin:
shluk: [ ]
indexy: [ ]
aplikace:
- aplikace: 'kibana-.kibana'
privilegia:
- 'Všechno'
zdroje:
- '*'
utíkat jako: [ ]
metadata:
_Rezervováno: skutečný
přechodná_metadata:
povoleno: skutečný
Zobrazit role pro konkrétního uživatele
Pokud si přejete zobrazit informace o konkrétním uživatelském jménu (včetně jejich rolí), můžete žádost použít takto:
DOSTAT / _bezpečnostní / uživatel
Předpokládejme například, že máme uživatelské jméno „linuxhint“, můžeme tyto informace o uživateli získat, jak je uvedeno:
Výše uvedený požadavek by měl vrátit informace o uživateli ve formátu YAML, jak je znázorněno:
linuxhint:
uživatelské jméno: 'linux'
role:
- 'divák'
- 'watcher_user'
celé jméno: 'linuxhint.com'
e-mailem: ' [e-mail chráněný] '
metadata: { }
povoleno: skutečný
Vidíme, že uživatel má role diváka a watcher_user.
Zobrazit role v Kibaně
Pokud nechcete používat API rolí kočky, můžete zobrazit role Elasticsearch v Kibaně tak, že přejdete na Správa -> Správa zásobníku.
Dále přejděte na Zabezpečení -> Role
Poté můžete role prohlížet a spravovat.
Závěr
V tomto článku jste se naučili používat rozhraní Elasticsearch Roles API k zobrazení informací o konkrétních rolích v clusteru. Také jste zjistili, jak zobrazit role daného uživatelského jména pomocí uživatelského rozhraní API.
Děkuji za přečtení!