La seguridad es un aspecto crucial en cualquier sistema de gestión de datos, y Elasticsearch no es una excepción. En este módulo, aprenderemos cómo asegurar una instancia de Elasticsearch para proteger los datos y garantizar que solo los usuarios autorizados puedan acceder a ellos.

Conceptos Clave

  1. Autenticación: Verificación de la identidad de los usuarios.
  2. Autorización: Control de acceso a recursos y operaciones basadas en la identidad del usuario.
  3. Cifrado: Protección de datos en tránsito y en reposo mediante técnicas criptográficas.
  4. Auditoría: Registro de eventos y actividades para monitoreo y cumplimiento.

Configuración Básica de Seguridad

  1. Habilitar la Seguridad en Elasticsearch

Para habilitar la seguridad en Elasticsearch, es necesario modificar el archivo de configuración elasticsearch.yml. Asegúrate de que las siguientes configuraciones estén presentes:

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.http.ssl.enabled: true

  1. Generar Certificados SSL

Elasticsearch utiliza SSL/TLS para cifrar la comunicación entre nodos y entre clientes y nodos. Puedes generar certificados SSL utilizando el elasticsearch-certutil:

bin/elasticsearch-certutil ca
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

Esto generará los certificados necesarios que deben ser configurados en elasticsearch.yml:

xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: path/to/your/keystore.p12
xpack.security.transport.ssl.truststore.path: path/to/your/truststore.p12
xpack.security.http.ssl.keystore.path: path/to/your/keystore.p12
xpack.security.http.ssl.truststore.path: path/to/your/truststore.p12

  1. Configurar Usuarios y Roles

Elasticsearch permite la creación de usuarios y roles para controlar el acceso. Puedes usar la API de seguridad para crear usuarios y roles.

Crear un Rol

PUT /_security/role/my_admin_role
{
  "cluster": ["all"],
  "indices": [
    {
      "names": ["*"],
      "privileges": ["all"]
    }
  ]
}

Crear un Usuario

POST /_security/user/my_admin_user
{
  "password" : "password123",
  "roles" : [ "my_admin_role" ],
  "full_name" : "Admin User",
  "email" : "[email protected]"
}

  1. Configurar Autenticación

Elasticsearch soporta varios métodos de autenticación, incluyendo autenticación básica, LDAP, y SAML. Aquí configuraremos la autenticación básica:

xpack.security.authc.realms.native.native1:
  order: 0

Ejercicio Práctico

Ejercicio 1: Habilitar Seguridad y Crear un Usuario

  1. Habilitar Seguridad: Modifica el archivo elasticsearch.yml para habilitar la seguridad.
  2. Generar Certificados: Usa elasticsearch-certutil para generar los certificados SSL.
  3. Configurar Certificados: Configura los certificados en elasticsearch.yml.
  4. Crear un Rol y un Usuario: Usa la API de seguridad para crear un rol y un usuario.

Solución

  1. Habilitar Seguridad:
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.http.ssl.enabled: true
  1. Generar Certificados:
bin/elasticsearch-certutil ca
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
  1. Configurar Certificados:
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: path/to/your/keystore.p12
xpack.security.transport.ssl.truststore.path: path/to/your/truststore.p12
xpack.security.http.ssl.keystore.path: path/to/your/keystore.p12
xpack.security.http.ssl.truststore.path: path/to/your/truststore.p12
  1. Crear un Rol y un Usuario:
PUT /_security/role/my_admin_role
{
  "cluster": ["all"],
  "indices": [
    {
      "names": ["*"],
      "privileges": ["all"]
    }
  ]
}
POST /_security/user/my_admin_user
{
  "password" : "password123",
  "roles" : [ "my_admin_role" ],
  "full_name" : "Admin User",
  "email" : "[email protected]"
}

Resumen

En esta sección, hemos aprendido cómo habilitar y configurar la seguridad en Elasticsearch. Hemos cubierto la habilitación de SSL/TLS, la creación de usuarios y roles, y la configuración de métodos de autenticación. Estos pasos son fundamentales para asegurar que solo los usuarios autorizados puedan acceder a los datos y realizar operaciones en tu clúster de Elasticsearch.

En el próximo tema, profundizaremos en la autenticación y autorización de usuarios, explorando métodos avanzados y configuraciones adicionales para asegurar tu clúster de Elasticsearch.

© Copyright 2024. Todos los derechos reservados