“Elasticsearch è un motore di ricerca e analisi incredibilmente versatile e potente. Può rapidamente ingerire, organizzare, ordinare, aggregare e gestire grandi quantità di dati di testo.
Nonostante tutto ciò, una delle caratteristiche più eccezionali di ElasticSearch e tutto il suo ecosistema sono le caratteristiche di sicurezza Ironclad. ElasticSearch include funzionalità come la firma delle richieste HTTP e consente solo agli utenti autenticati di eseguire operazioni sul cluster.
Un'altra caratteristica di sicurezza in Elasticsearch è l'uso di utenti e ruoli. ElasticSearch consente di assegnare ruoli specifici agli utenti nel cluster. Questi vengono quindi utilizzati per determinare quali azioni il nome utente può eseguire sul cluster.
ElaSticSearch assegnerà un ruolo predefinito a tutti gli utenti creati nel cluster. Il ruolo predefinito consente agli utenti di accedere all'endpoint autentica."
Nota: il ruolo predefinito è anche assegnato agli utenti anonimi.
Il nucleo di questo tutorial è darti i fondamentali dei ruoli di Elasticsearch. Usando questo tutorial, scoprirai come recuperare i ruoli nel regno nativo di Elasticsearch e visualizzare i ruoli assegnati a un nome utente specifico.
Immerciamoci.
Elasticsearch Ottieni ruoli API
Usiamo l'API Get Roles per recuperare informazioni sui ruoli nel cluster di Elasticsearch. La sintassi della richiesta è come mostrata:
Get /_security /ruolo
La query sopra dovrebbe restituire tutti i ruoli nel sistema.
Per recuperare informazioni su un ruolo specifico, è possibile utilizzare la sintassi come mostrato:
Get/_security/ruolo/
Nota: questa API richiede che l'utente abbia un privilegio di Gesty_Security sul cluster.
Se la richiesta ha esito positivo, la query dovrebbe restituire una serie di ruoli.
Esempio 1 - Recupera tutti i ruoli nel cluster
La richiesta di esempio seguente recupererà tutti i ruoli nel cluster di Elasticsearch:
Curl -Xget "http: // localhost: 9200/_security/ruolo?Pretty = true "-h" kbn -xsrf: reporting "
Un esempio di esempio è mostrato di seguito:
"apm_user":
"grappolo": [],
"Indici": [
"Nomi": [
"apm-*"
",
"Privilegi": [
"Leggere",
"View_index_metadata"
",
"Ambito_restricted_indices": False
,
"Nomi": [
"Logs-APM.*"
",
"Privilegi": [
"Leggere",
"View_index_metadata"
",
"Ambito_restricted_indices": False
,
"Nomi": [
"logs-apm-*"
",
"Privilegi": [
"Leggere",
"View_index_metadata"
",
"Ambito_restricted_indices": False
,
"Nomi": [
"Metriche-APM.*"
",
"Privilegi": [
"Leggere",
"View_index_metadata"
",
"Ambito_restricted_indices": False
,
"Nomi": [
"Metrics-apm-*"
",
"Privilegi": [
"Leggere",
"View_index_metadata"
",
"Ambito_restricted_indices": False
,
"Nomi": [
"Tracce-APM.*"
",
"Privilegi": [
"Leggere",
"View_index_metadata"
",
"Ambito_restricted_indices": False
,
Nota: l'output sopra è stato troncato per l'ambito di questo tutorial.
Esempio 2 - Ottieni informazioni su un ruolo specifico
L'esempio seguente restituisce informazioni sul ruolo di kibana_admin.
Curl -xget "http: // localhost: 9200/_security/ruolo/kibana_admin" -h "kbn -xsrf: reporting"
Le informazioni sul ruolo risultante sono come mostrate:
"kibana_admin":
"grappolo": [],
"Indici": [],
"Applicazioni": [
"Applicazione": "Kibana-.kibana ",
"Privilegi": [
"Tutto"
",
"Risorse": [
"*"
"
",
"correre come": [],
"Metadati":
"_Reserved": True
,
"Transient_metadata":
"abilitato": vero
Recuperare le informazioni sul ruolo in yaml
Per impostazione predefinita, l'API Get Roles restituirà il risultato in formato JSON. Tuttavia, puoi scegliere un formato diverso usando il parametro del formato.
La sintassi è come mostrata:
Get /_security /ruolo?formato = json/yaml
Ad esempio, per recuperare le informazioni sul ruolo di kibana_admin in formato YAML, possiamo eseguire:
Curl -Xget "http: // localhost: 9200/_security/ruolo/kibana_admin?formato = yaml "-h" kbn -xsrf: reporting "
Output risultante:
---
kibana_admin:
grappolo: []
Indici: []
Applicazioni:
- Applicazione: "Kibana-.kibana "
Privilegi:
- "Tutto"
Risorse:
- "*"
correre come: []
Metadati:
_ Reserved: True
Transient_metadata:
Abilitato: vero
Visualizza ruoli per un utente specifico
Se si desidera visualizzare informazioni su un nome utente specifico (compresi i loro ruoli), puoi utilizzare la richiesta come mostrato:
Get /_security /utente
Ad esempio, supponiamo che abbiamo un nome utente "Linuxhint" che possiamo recuperare quelle informazioni dell'utente come mostrato:
CURL -XGET "http: // locahost: 9200/_security/utente/linuxhint?formato = yaml "-h" kbn -xsrf: reporting "
La richiesta sopra dovrebbe restituire informazioni sull'utente in formato YAML come mostrato:
---
Linuxhint:
Nome utente: "Linuxhint"
Ruoli:
- "spettatore"
- "Watcher_user"
full_name: "Linuxhint.com "
Email: "[email protected] "
Metadati:
Abilitato: vero
Possiamo vedere che l'utente ha ruoli di visualizzatore e watcher_user.
Visualizza i ruoli in Kibana
Se non si desidera utilizzare l'API dei ruoli Cat, puoi visualizzare i ruoli ElasticSearch in Kibana navigando alla gestione -> Gestione stack.
Successivamente, vai alla sicurezza -> Ruoli
Puoi quindi visualizzare e gestire i ruoli.
Conclusione
In questo articolo, hai imparato a utilizzare l'API di ElasticSearch Roles per visualizzare informazioni su ruoli specifici nel cluster. Hai anche scoperto come visualizzare i ruoli di un determinato nome utente usando l'API dell'utente.
Grazie per aver letto!