En aquest tema, aprendrem com configurar i gestionar l'autenticació i l'autorització d'usuaris a Elasticsearch. Aquestes funcionalitats són essencials per assegurar que només els usuaris autoritzats puguin accedir i modificar les dades emmagatzemades.

  1. Introducció a la Seguretat a Elasticsearch

Elasticsearch ofereix diverses funcionalitats de seguretat per protegir les dades, incloent-hi:

  • Autenticació: Verifica la identitat dels usuaris.
  • Autorització: Controla els permisos dels usuaris autenticats.
  • Xifratge: Protegeix les dades en trànsit i en repòs.
  • Auditoria: Registra les accions dels usuaris per a la supervisió i el compliment.

  1. Configurant l'Autenticació

2.1. Mètodes d'Autenticació

Elasticsearch suporta diversos mètodes d'autenticació, incloent:

  • Autenticació bàsica: Utilitza noms d'usuari i contrasenyes.
  • LDAP: Integra amb serveis d'autenticació LDAP.
  • SAML: Utilitza el protocol SAML per a l'autenticació única (SSO).
  • Kerberos: Suporta l'autenticació basada en Kerberos.

2.2. Configuració de l'Autenticació Bàsica

Per configurar l'autenticació bàsica, primer hem d'habilitar la seguretat a Elasticsearch. Això es fa editant el fitxer elasticsearch.yml.

# elasticsearch.yml
xpack.security.enabled: true

Després, hem de crear usuaris i assignar-los contrasenyes. Això es pot fer utilitzant l'eina elasticsearch-users.

bin/elasticsearch-users useradd <nom_usuari> -p <contrasenya> -r <rol>

2.3. Exemple Pràctic

Creem un usuari anomenat admin amb la contrasenya admin123 i el rol superuser.

bin/elasticsearch-users useradd admin -p admin123 -r superuser

  1. Configurant l'Autorització

3.1. Rols i Permisos

Els rols defineixen els permisos que tenen els usuaris. Un rol pot incloure permisos per a:

  • Índexs: Lectura, escriptura, esborrat, etc.
  • Clúster: Administració del clúster, gestió de nodes, etc.

3.2. Creació de Rols

Els rols es defineixen en un fitxer JSON o mitjançant l'API REST d'Elasticsearch.

Exemple de Rol en JSON

{
  "logstash_writer": {
    "cluster": ["manage_index_templates", "monitor"],
    "indices": [
      {
        "names": ["logstash-*"],
        "privileges": ["write", "delete", "create_index"]
      }
    ]
  }
}

3.3. Assignació de Rols a Usuaris

Els rols es poden assignar a usuaris mitjançant l'API REST.

Exemple d'Assignació de Rol

curl -X POST "localhost:9200/_security/role/logstash_writer" -H "Content-Type: application/json" -d'
{
  "cluster": ["manage_index_templates", "monitor"],
  "indices": [
    {
      "names": ["logstash-*"],
      "privileges": ["write", "delete", "create_index"]
    }
  ]
}'

Després, assignem el rol a un usuari.

curl -X POST "localhost:9200/_security/user/logstash_user" -H "Content-Type: application/json" -d'
{
  "password" : "logstash123",
  "roles" : [ "logstash_writer" ],
  "full_name" : "Logstash User",
  "email" : "[email protected]"
}'

  1. Exercicis Pràctics

Exercici 1: Crear un Usuari i Assignar-li un Rol

  1. Habilita la seguretat a Elasticsearch editant el fitxer elasticsearch.yml.
  2. Crea un usuari anomenat data_analyst amb la contrasenya analyst123.
  3. Defineix un rol anomenat data_reader que tingui permisos de lectura sobre tots els índexs.
  4. Assigna el rol data_reader a l'usuari data_analyst.

Solució

  1. Edita elasticsearch.yml:

    xpack.security.enabled: true
    
  2. Crea l'usuari:

    bin/elasticsearch-users useradd data_analyst -p analyst123 -r data_reader
    
  3. Defineix el rol:

    curl -X POST "localhost:9200/_security/role/data_reader" -H "Content-Type: application/json" -d'
    {
      "cluster": ["monitor"],
      "indices": [
        {
          "names": ["*"],
          "privileges": ["read"]
        }
      ]
    }'
    
  4. Assigna el rol a l'usuari:

    curl -X POST "localhost:9200/_security/user/data_analyst" -H "Content-Type: application/json" -d'
    {
      "password" : "analyst123",
      "roles" : [ "data_reader" ],
      "full_name" : "Data Analyst",
      "email" : "[email protected]"
    }'
    

  1. Resum

En aquesta secció, hem après com configurar l'autenticació i l'autorització d'usuaris a Elasticsearch. Hem vist com crear usuaris, definir rols i assignar aquests rols als usuaris. Aquestes funcionalitats són essencials per assegurar que només els usuaris autoritzats puguin accedir i modificar les dades emmagatzemades a Elasticsearch.

© Copyright 2024. Tots els drets reservats