“Elasticsearch es un motor de búsqueda y análisis increíblemente versátil y potente. Puede ingerir rápidamente, organizar, clasificar, agregar y administrar grandes cantidades de datos de texto.
A pesar de todo eso, una de las características más sobresalientes en Elasticsearch y todo su ecosistema son las características de seguridad de IronClad. Elasticsearch incluye características como la firma de solicitudes HTTP y solo permite a los usuarios autenticados realizar operaciones en el clúster.
Otra característica de seguridad en Elasticsearch es el uso de usuarios y roles. Elasticsearch le permite asignar roles específicos a los usuarios en el clúster. Estos se usan para determinar qué acciones puede realizar el nombre de usuario en el clúster.
Elasticsearch asignará un papel predeterminado a todos los usuarios creados en el clúster. El rol predeterminado permite a los usuarios acceder al punto final de Auth, que es responsable de cambiar las contraseñas, recuperar la información del usuario, etc."
Nota: El papel predeterminado también se asigna a usuarios anónimos.
El núcleo de este tutorial es darle los fundamentos de los roles de ElasticSearch. Usando este tutorial, descubrirá cómo obtener los roles en el reino nativo de ElasticSearch y verá los roles asignados a un nombre de usuario específico.
Vamos a sumergirnos.
Elasticsearch obtiene roles API
Utilizamos la API Get Roles para recuperar información sobre roles en el clúster Elasticsearch. La sintaxis de la solicitud es como se muestra:
Get /_Security /rol
La consulta anterior debe devolver todos los roles en el sistema.
Para recuperar información sobre un papel específico, puede usar la sintaxis como se muestra:
Get/_Security/rol/
NOTA: Esta API requiere que el usuario tenga privilegio de seguridad administrativo en el clúster.
Si la solicitud es exitosa, la consulta debe devolver una variedad de roles.
Ejemplo 1 - Recupere todos los roles en el clúster
La solicitud de ejemplo a continuación recuperará todos los roles en el clúster Elasticsearch:
curl -xget "http: // localhost: 9200/_security/rol?Pretty = True "-H" KBN -XSRF: informes "
A continuación se muestra una salida de ejemplo:
"APM_USER":
"grupo": [],
"índices": [
"Nombres": [
"APM-*"
],
"Privilegios": [
"leer",
"Ver_index_metadata"
],
"tampion_restricted_indices": falso
,
"Nombres": [
"Logs-APM.*
],
"Privilegios": [
"leer",
"Ver_index_metadata"
],
"tampion_restricted_indices": falso
,
"Nombres": [
"Logs-APM-*"
],
"Privilegios": [
"leer",
"Ver_index_metadata"
],
"tampion_restricted_indices": falso
,
"Nombres": [
"Métricas-APM.*
],
"Privilegios": [
"leer",
"Ver_index_metadata"
],
"tampion_restricted_indices": falso
,
"Nombres": [
"Métricas-APM-*"
],
"Privilegios": [
"leer",
"Ver_index_metadata"
],
"tampion_restricted_indices": falso
,
"Nombres": [
"TRACES-APM.*
],
"Privilegios": [
"leer",
"Ver_index_metadata"
],
"tampion_restricted_indices": falso
,
Nota: La salida anterior ha sido truncada para el alcance de este tutorial.
Ejemplo 2: obtener información sobre un papel específico
El siguiente ejemplo devuelve información sobre el rol Kibana_admin.
curl -xget "http: // localhost: 9200/_security/rol/kibana_admin" -h "kbn -xsrf: informes"
La información del rol resultante es como se muestra:
"Kibana_admin":
"grupo": [],
"índices": [],
"Aplicaciones": [
"Aplicación": "Kibana-.kibana ",
"Privilegios": [
"todo"
],
"recursos": [
"*"
]
],
"correr como": [],
"Metadatos":
"_reservado": verdadero
,
"Transient_Metadata":
"habilitado": verdadero
Recuperar información de roles en YAML
Por defecto, la API Get Roles devolverá el resultado en formato JSON. Sin embargo, puede elegir un formato diferente utilizando el parámetro de formato.
La sintaxis es como se muestra:
Get /_Security /rol?formato = json/yaml
Por ejemplo, para recuperar la información sobre el papel Kibana_admin en formato Yaml, podemos ejecutar:
curl -xget "http: // localhost: 9200/_security/rol/kibana_admin?formato = yaml "-h" kbn -xsrf: informes "
Salida resultante:
---
kibana_admin:
grupo: []
índices: []
Aplicaciones:
- Aplicación: "Kibana-.kibana "
Privilegios:
- "todo"
recursos:
- "*"
correr como: []
metadatos:
_reservado: verdadero
Transient_metadata:
habilitado: verdadero
Ver roles para un usuario específico
Si desea ver información sobre un nombre de usuario específico (incluidos sus roles), puede usar la solicitud como se muestra:
Get /_Security /User
Por ejemplo, supongamos que tenemos un nombre de usuario "Linuxhint", podemos recuperar esa información del usuario como se muestra:
curl -xget "http: // locahost: 9200/_security/user/linuxhint?formato = yaml "-h" kbn -xsrf: informes "
La solicitud anterior debe devolver información sobre el usuario en formato YAML como se muestra:
---
Linuxhint:
Nombre de usuario: "Linuxhint"
Roles:
- "espectador"
- "Watcher_user"
Full_name: "Linuxhint.com "
Correo electrónico: "[email protected] "
metadatos:
habilitado: verdadero
Podemos ver que el usuario tiene los roles de Viewer y Watcher_user.
Ver roles en Kibana
Si no desea utilizar la API de roles CAT, puede ver los roles Elasticsearch en Kibana navegando a la gerencia -> Gestión de la pila.
A continuación, navegue a la seguridad -> roles
Luego puede ver y administrar los roles.
Conclusión
En este artículo, aprendió cómo usar la API de roles de Elasticsearch para ver información sobre roles específicos en el clúster. También descubrió cómo ver los roles de un nombre de usuario determinado utilizando la API del usuario.
Gracias por leer!