“Elasticsearch je nevjerojatno svestran i moćan mehanizam za pretraživanje i analitiku. Može brzo unositi, organizirati, sortirati, prikupljati i upravljati velikim količinama tekstualnih podataka.
Unatoč svemu tome, jedna od najistaknutijih značajki u Elasticsearchu i njegovom cijelom ekosustavu su vrhunske sigurnosne značajke. Elasticsearch uključuje značajke kao što je potpisivanje HTTP zahtjeva i dopušta samo autentificiranim korisnicima izvođenje operacija na klasteru.
Još jedna sigurnosna značajka u Elasticsearchu je korištenje korisnika i uloga. Elasticsearch vam omogućuje dodjeljivanje specifičnih uloga korisnicima u klasteru. Oni se zatim koriste za određivanje radnji koje korisničko ime može izvesti na klasteru.
Elasticsearch će dodijeliti zadanu ulogu svim korisnicima stvorenim u klasteru. Zadana uloga omogućuje korisnicima pristup krajnjoj točki autentifikacije, koja je odgovorna za promjenu lozinki, dohvaćanje korisničkih podataka itd.”
NAPOMENA: Zadana uloga također je dodijeljena anonimnim korisnicima.
Srž ovog vodiča je dati vam osnove Elasticsearch uloga. Pomoću ovog vodiča otkrit ćete kako dohvatiti uloge u matičnom području Elasticsearch i pregledati uloge dodijeljene određenom korisničkom imenu.
Zaronimo.
Elasticsearch Get Roles API
Koristimo Get Roles API za dohvaćanje informacija o ulogama u klasteru Elasticsearch. Sintaksa zahtjeva je kao što je prikazano:
DOBITI / _sigurnost / uloga
Gornji upit trebao bi vratiti sve uloge u sustavu.
Za dohvaćanje informacija o određenoj ulozi, možete koristiti sintaksu kao što je prikazano:
DOBITI / _sigurnost / uloga /< Ime >
NAPOMENA: Ovaj API zahtijeva da korisnik ima privilegiju manage_security na klasteru.
Ako je zahtjev uspješan, upit bi trebao vratiti niz uloga.
Primjer 1 – dohvaćanje svih uloga u klasteru
Primjer zahtjeva u nastavku će dohvatiti sve uloge u klasteru Elasticsearch:
kovrča -XGET “http://localhost:9200/_security/role?pretty=true” -H 'kbn-xsrf: izvješćivanje'
Ispod je prikazan primjer izlaza:
'apm_user' : {
'Klastera' : [ ] ,
'indeksi' : [
{
'imena' : [
'apm-*'
] ,
'privilegije' : [
'čitati' ,
'view_index_metadata'
] ,
'dopusti_ograničene_indekse' : lažno
} ,
{
'imena' : [
'prozor-cca.*'
] ,
'privilegije' : [
'čitati' ,
'view_index_metadata'
] ,
'dopusti_ograničene_indekse' : lažno
} ,
{
'imena' : [
'prozor-približno-*'
] ,
'privilegije' : [
'čitati' ,
'view_index_metadata'
] ,
'dopusti_ograničene_indekse' : lažno
} ,
{
'imena' : [
'metrics-apm.*'
] ,
'privilegije' : [
'čitati' ,
'view_index_metadata'
] ,
'dopusti_ograničene_indekse' : lažno
} ,
{
'imena' : [
'metrics-apm-*'
] ,
'privilegije' : [
'čitati' ,
'view_index_metadata'
] ,
'dopusti_ograničene_indekse' : lažno
} ,
{
'imena' : [
'tragovi-apm.*'
] ,
'privilegije' : [
'čitati' ,
'view_index_metadata'
] ,
'dopusti_ograničene_indekse' : lažno
} ,
NAPOMENA: Gornji izlaz je skraćen za opseg ovog vodiča.
Primjer 2 – Dobivanje informacija o određenoj ulozi
Primjer ispod vraća informacije o ulozi kibana_admin.
kovrča -XGET “http://localhost:9200/_security/role/kibana_admin” -H 'kbn-xsrf: izvješćivanje'
Rezultirajuća informacija o ulozi je kao što je prikazano:
'kibana_admin' : {
'Klastera' : [ ] ,
'indeksi' : [ ] ,
'aplikacije' : [
{
'prijava' : 'kibana-.kibana' ,
'privilegije' : [
'svi'
] ,
'resursi' : [
'*'
]
}
] ,
'trčati kao' : [ ] ,
'metapodaci' : {
'_Rezervirano' : pravi
} ,
'prolazni_metapodaci' : {
'omogućeno' : pravi
}
}
}
Dohvaćanje informacija o ulozi u YAML-u
Prema zadanim postavkama API za dobivanje uloga vraća rezultat u JSON formatu. Međutim, možete odabrati drugačiji format pomoću parametra formata.
Sintaksa je kao što je prikazano:
DOBITI / _sigurnost / uloga? format =json / yaml
Na primjer, da dohvatimo informacije o ulozi kibana_admin u YAML formatu, možemo pokrenuti:
Rezultirajući rezultat:
kibana_admin:
Klastera: [ ]
indeksi: [ ]
aplikacije:
- primjena: 'kibana-.kibana'
privilegije:
- 'svi'
resursi:
- '*'
trčati kao: [ ]
metapodaci:
_Rezervirano: pravi
prolazni_metapodaci:
omogućeno: pravi
Pregledajte uloge za određenog korisnika
Ako želite vidjeti informacije o određenom korisničkom imenu (uključujući njihove uloge), možete koristiti zahtjev kao što je prikazano:
DOBITI / _sigurnost / korisnik
Na primjer, pretpostavimo da imamo korisničko ime 'linuxhint' te možemo dohvatiti korisničke informacije kao što je prikazano:
Gornji zahtjev trebao bi vratiti informacije o korisniku u YAML formatu kao što je prikazano:
linuxhint:
Korisničko ime: 'linux'
uloge:
- 'gledatelj'
- 'korisnik_promatrač'
puno ime: 'linuxhint.com'
email: ' [email protected] '
metapodaci: { }
omogućeno: pravi
Vidimo da korisnik ima uloge gledatelja i gledatelja_korisnika.
Pogledajte uloge u Kibani
Ako ne želite koristiti API za mačje uloge, uloge Elasticsearch u Kibani možete vidjeti tako da odete na Upravljanje -> Upravljanje snopom.
Zatim idite na Sigurnost -> Uloge
Tada možete pregledavati i upravljati ulogama.
Zaključak
U ovom ste članku naučili kako koristiti Elasticsearch Roles API za pregled informacija o određenim ulogama u klasteru. Također ste otkrili kako vidjeti uloge određenog korisničkog imena pomoću korisničkog API-ja.
Hvala na čitanju!