Desde el blog oficial de Elastic; se publico un completo tutorial de como hacer uso de la autenticacion y autorizacion con Elasticsearch.
Una de las preguntas más comunes que se recibe de los usuarios son sobre como asegurar Elasticsearch. ¿Qué tipo de autenticación admite Elasticsearch? ¿Cómo lo configuro? ¿Cómo puedo asegurarme de que los usuarios no vean datos que no deberían ver? Donde el objetivo para el blog oficial es responder esas preguntas, así como proporcionar alguna orientación para resolver algunos problemas comunes al configurar la seguridad.
Primero, algo de historia. Si ha estado usando Elasticsearch por un tiempo, sabrá que la seguridad fue provista por un complemento llamado Shield que se ofreció a través de X-Pack. Hoy en día, esa funcionalidad de seguridad se ha trasladado a Elastic Stack ( junto con el resto de X-Pack ), con las funciones más utilizadas disponibles de forma gratuita con la distribución predeterminada . La seguridad incluye comunicación cifrada (TLS / SSL), autenticación (nativa, LDAP, SSO, etc.), autorización (RBAC, ABAC, etc.), filtrado de IP , registro de auditoría y mucho más . El enfoque de este blog estará en las dos "autorizaciones".
Autenticación en Elasticsearch
En pocas palabras, si un usuario o API desea acceder a Elasticsearch, debe autenticarse .
Elasticsearch admite varios métodos de seguridad de forma nativa, como:
- Autenticación de usuario nativo
- Autenticación de usuario de Active Directory
- Autenticación de usuario basada en archivos
- Autenticación de usuario LDAP
- Autenticación de usuario PKI
- Autenticación SAML
- Autenticación Kerberos
Incluso puede crear su propia integración si uno de estos no se aplica a usted. Sin embargo, generalmente recomendamos que use una de las integraciones existentes, ya que están validadas y seguimos desarrollando con ellas para garantizar el soporte adecuado.
El componente más básico de seguridad dentro de Elasticsearch es un reino, que es lo que resuelve y autentica a los usuarios. Cada uno de los métodos de autenticación enumerados anteriormente se consideraría un reino. Y para funcionar, Elasticsearch trabaja con una cadena de reino . Una cadena de reinos es una lista priorizada de reinos configurados (de 1 a N reinos) en orden ascendente de preferencia. Cuando un usuario intenta acceder a Elasticsearch, la solicitud recorrerá la lista secuencialmente hasta que la autenticación sea exitosa o se quede sin reinos para intentarlo.
Esencialmente, el proceso probará el primer reino configurado en la lista y, si falla, continuará con el siguiente hasta que tenga éxito con uno de los elementos del reino o se ejecute exhaustivamente en toda la lista. Este primer paso para acceder a Elasticsearch se llama autenticación.
Una vez que un usuario se autentica, Elasticsearch intentará asignarle uno o más roles. Los roles se pueden asignar a los usuarios de forma estática o dinámica durante la autenticación, en función de algunas de las propiedades del usuario. Dependiendo del tipo de dominio que autentica al usuario, las propiedades de los usuarios utilizan para asignar un papel puede ser la pertenencia a un grupo que tienen en un sistema externo, o el sufijo de su nombre de usuario en Elasticsearch, etc. Además, también cuenta con Elasticsearch ejecutan como funcionalidad , que permite a los usuarios enviar solicitudes en nombre de otros usuarios sin necesidad de volver a autenticarse.
Más información y tutorial completo desde blog Elasticsearch.