„Elasticsearch je neuveriteľne všestranný a výkonný vyhľadávací a analytický nástroj. Dokáže rýchlo prijímať, organizovať, triediť, agregovať a spravovať veľké množstvo textových údajov.
Napriek tomu všetkému sú jednou z najvýraznejších funkcií Elasticsearch a celého jeho ekosystému pevné bezpečnostné prvky. Elasticsearch obsahuje funkcie, ako je napríklad podpisovanie HTTP požiadaviek, a umožňuje vykonávať operácie na klastri iba overeným používateľom.
Ďalšou bezpečnostnou funkciou v Elasticsearch je použitie používateľov a rolí. Elasticsearch vám umožňuje priradiť konkrétne roly používateľom v klastri. Tie sa potom použijú na určenie, aké akcie môže používateľské meno vykonávať v klastri.
Elasticsearch priradí predvolenú rolu všetkým používateľom vytvoreným v klastri. Predvolená rola umožňuje používateľom prístup ku koncovému bodu autentifikácie, ktorý je zodpovedný za zmenu hesiel, získavanie informácií o používateľoch atď.
POZNÁMKA: Predvolená rola je priradená aj anonymným používateľom.
Jadrom tohto návodu je poskytnúť vám základy úloh Elasticsearch. Pomocou tohto tutoriálu zistíte, ako získať roly v natívnej sfére Elasticsearch a zobraziť roly priradené konkrétnemu používateľskému menu.
Poďme sa ponoriť.
Elasticsearch Get Roles API
Na získanie informácií o rolách v klastri Elasticsearch používame API Get Roles. Syntax požiadavky je takáto:
GET / _zabezpečenie / úlohu
Vyššie uvedený dotaz by mal vrátiť všetky roly v systéme.
Ak chcete získať informácie o konkrétnej role, môžete použiť syntax, ako je znázornené:
GET / _zabezpečenie / úlohu /< názov >
POZNÁMKA: Toto rozhranie API vyžaduje, aby mal používateľ v klastri privilégium manage_security.
Ak je požiadavka úspešná, dotaz by mal vrátiť pole rolí.
Príklad 1 – Získanie všetkých rolí v klastri
Príklad žiadosti nižšie získa všetky roly v klastri Elasticsearch:
zvlniť -XGET „http://localhost:9200/_security/role?pretty=true“ -H 'kbn-xsrf: reporting'
Príklad výstupu je uvedený nižšie:
'apm_user' : {
'zhluk' : [ ] ,
'indexy' : [
{
'mená' : [
'apm-*'
] ,
'privilégiá' : [
'čítať' ,
'view_index_metadata'
] ,
'allow_restricted_indexs' : falošný
} ,
{
'mená' : [
'okno-cca*'
] ,
'privilégiá' : [
'čítať' ,
'view_index_metadata'
] ,
'allow_restricted_indexs' : falošný
} ,
{
'mená' : [
'približne okno-*'
] ,
'privilégiá' : [
'čítať' ,
'view_index_metadata'
] ,
'allow_restricted_indexs' : falošný
} ,
{
'mená' : [
'metrics-apm.*'
] ,
'privilégiá' : [
'čítať' ,
'view_index_metadata'
] ,
'allow_restricted_indexs' : falošný
} ,
{
'mená' : [
'metrics-apm-*'
] ,
'privilégiá' : [
'čítať' ,
'view_index_metadata'
] ,
'allow_restricted_indexs' : falošný
} ,
{
'mená' : [
'traces-apm.*'
] ,
'privilégiá' : [
'čítať' ,
'view_index_metadata'
] ,
'allow_restricted_indexs' : falošný
} ,
POZNÁMKA: Výstup vyššie bol skrátený pre rozsah tohto návodu.
Príklad 2 – Získajte informácie o konkrétnej úlohe
Príklad nižšie vracia informácie o úlohe kibana_admin.
zvlniť -XGET “http://localhost:9200/_security/role/kibana_admin” -H 'kbn-xsrf: reporting'
Výsledné informácie o úlohe vyzerajú takto:
'kibana_admin' : {
'zhluk' : [ ] ,
'indexy' : [ ] ,
'aplikácie' : [
{
'aplikácia' : 'kibana-.kibana' ,
'privilégiá' : [
'všetky'
] ,
'zdroje' : [
'*'
]
}
] ,
'run_as' : [ ] ,
'metaúdaje' : {
'_rezervovaný' : pravda
} ,
'transient_metadata' : {
'povolené' : pravda
}
}
}
Získajte informácie o úlohe v YAML
Rozhranie API na získanie rolí predvolene vráti výsledok vo formáte JSON. Pomocou parametra format si však môžete vybrať iný formát.
Syntax je uvedená:
GET / _zabezpečenie / úlohu? formát =json / yaml
Napríklad, ak chcete získať informácie o úlohe kibana_admin vo formáte YAML, môžeme spustiť:
Výsledný výstup:
kibana_admin:
klaster: [ ]
indexy: [ ]
aplikácie:
- aplikácia: 'kibana-.kibana'
privilégiá:
- 'všetky'
zdroje:
- '*'
spustiť_ako: [ ]
metadáta:
_rezervované: pravda
prechodné_metaúdaje:
povolené: pravda
Zobraziť roly pre konkrétneho používateľa
Ak chcete zobraziť informácie o konkrétnom používateľskom mene (vrátane ich rolí), môžete žiadosť použiť takto:
GET / _zabezpečenie / užívateľ
Predpokladajme napríklad, že máme používateľské meno „linuxhint“, môžeme získať tieto informácie o používateľovi, ako je znázornené:
Vyššie uvedená požiadavka by mala vrátiť informácie o používateľovi vo formáte YAML, ako je znázornené:
linuxhint:
užívateľské meno: 'linux'
role:
- 'divák'
- 'watcher_user'
celé meno: 'linuxhint.com'
email: ' [e-mail chránený] '
metadáta: { }
povolené: pravda
Vidíme, že používateľ má roly divák a watcher_user.
Pozrite si Roly v Kibane
Ak nechcete používať API roly mačiek, roly Elasticsearch v Kibana si môžete pozrieť tak, že prejdete na Management -> Stack Management.
Ďalej prejdite na Zabezpečenie -> Roly
Potom môžete zobraziť a spravovať roly.
Záver
V tomto článku ste sa naučili používať rozhranie Elasticsearch Roles API na zobrazenie informácií o konkrétnych rolách v klastri. Tiež ste zistili, ako zobraziť roly daného používateľského mena pomocou používateľského rozhrania API.
Vďaka za prečítanie!