En aquest tema, aprendrem com assegurar Elasticsearch per protegir les dades i garantir que només els usuaris autoritzats tinguin accés. La seguretat és un aspecte crític en qualsevol sistema de gestió de dades, i Elasticsearch no és una excepció. A continuació, desglossarem els conceptes clau i les pràctiques recomanades per assegurar Elasticsearch.
Conceptes Clau
- Autenticació: Verificació de la identitat dels usuaris que intenten accedir al sistema.
- Autorització: Determinació dels permisos i nivells d'accés dels usuaris autenticats.
- Xifratge: Protecció de les dades en trànsit i en repòs mitjançant tècniques de xifratge.
- Seguretat de la Xarxa: Configuració de la xarxa per limitar l'accés a Elasticsearch només a usuaris i sistemes autoritzats.
Configuració de la Seguretat Bàsica
- Instal·lació del Mòdul de Seguretat
Elasticsearch inclou un mòdul de seguretat anomenat "Elastic Security". Per activar-lo, cal assegurar-se que el mòdul està instal·lat i configurat correctament.
# Instal·lació del mòdul de seguretat (si no està ja instal·lat) bin/elasticsearch-plugin install x-pack
- Configuració de l'Autenticació
Per configurar l'autenticació, cal definir usuaris i rols. Això es pot fer mitjançant el fitxer elasticsearch.yml
o utilitzant l'API de seguretat.
Exemple de Configuració en elasticsearch.yml
:
xpack.security.enabled: true xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.keystore.path: /path/to/keystore.p12 xpack.security.transport.ssl.truststore.path: /path/to/truststore.p12
Creació d'Usuaris i Rols amb l'API:
# Creació d'un usuari curl -X POST "localhost:9200/_security/user/john_doe" -H 'Content-Type: application/json' -d' { "password" : "password123", "roles" : [ "admin" ], "full_name" : "John Doe", "email" : "[email protected]" } ' # Creació d'un rol curl -X POST "localhost:9200/_security/role/admin" -H 'Content-Type: application/json' -d' { "cluster": ["all"], "indices": [ { "names": [ "*" ], "privileges": ["all"] } ] } '
- Xifratge de les Comunicacions
Per assegurar que les dades en trànsit estan protegides, és important configurar el xifratge TLS (Transport Layer Security).
Generació de Certificats TLS:
# Generació d'un certificat autofirmat bin/elasticsearch-certutil ca bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
Configuració del TLS en elasticsearch.yml
:
xpack.security.http.ssl.enabled: true xpack.security.http.ssl.keystore.path: /path/to/keystore.p12 xpack.security.http.ssl.truststore.path: /path/to/truststore.p12
- Seguretat de la Xarxa
Configura el tallafocs i les regles de seguretat de la xarxa per limitar l'accés a Elasticsearch només a les adreces IP de confiança.
Exemple de Configuració del Tallafocs:
# Permetre només connexions des de l'adreça IP 192.168.1.100 sudo ufw allow from 192.168.1.100 to any port 9200
Exercicis Pràctics
Exercici 1: Configuració Bàsica de Seguretat
- Instal·la el mòdul de seguretat d'Elasticsearch.
- Configura l'autenticació i crea un usuari amb rol d'administrador.
- Habilita el xifratge TLS per a les comunicacions HTTP.
Exercici 2: Configuració de la Xarxa
- Configura el tallafocs per permetre l'accés a Elasticsearch només des d'una adreça IP específica.
Solucions
Solució a l'Exercici 1
- Instal·lació del mòdul de seguretat:
- Configuració de l'autenticació en
elasticsearch.yml
:
xpack.security.enabled: true xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.keystore.path: /path/to/keystore.p12 xpack.security.transport.ssl.truststore.path: /path/to/truststore.p12
- Creació d'un usuari i rol amb l'API:
curl -X POST "localhost:9200/_security/user/john_doe" -H 'Content-Type: application/json' -d' { "password" : "password123", "roles" : [ "admin" ], "full_name" : "John Doe", "email" : "[email protected]" } ' curl -X POST "localhost:9200/_security/role/admin" -H 'Content-Type: application/json' -d' { "cluster": ["all"], "indices": [ { "names": [ "*" ], "privileges": ["all"] } ] } '
- Habilitació del xifratge TLS:
xpack.security.http.ssl.enabled: true xpack.security.http.ssl.keystore.path: /path/to/keystore.p12 xpack.security.http.ssl.truststore.path: /path/to/truststore.p12
Solució a l'Exercici 2
- Configuració del tallafocs:
Conclusió
En aquesta secció, hem après com assegurar Elasticsearch mitjançant la configuració de l'autenticació, l'autorització, el xifratge de les comunicacions i la seguretat de la xarxa. Aquests passos són essencials per protegir les dades i garantir que només els usuaris autoritzats tinguin accés al sistema. En el proper tema, explorarem com configurar l'autenticació i l'autorització d'usuaris en més detall.
Curs d'Elasticsearch
Mòdul 1: Introducció a Elasticsearch
- Què és Elasticsearch?
- Instal·lant Elasticsearch
- Conceptes Bàsics: Nodes, Clústers i Índexs
- Arquitectura d'Elasticsearch
Mòdul 2: Començant amb Elasticsearch
Mòdul 3: Tècniques Avançades de Cerca
Mòdul 4: Modelatge de Dades i Gestió d'Índexs
Mòdul 5: Rendiment i Escalabilitat
- Optimitzant el Rendiment de la Cerca
- Escalant Elasticsearch
- Monitorització i Manteniment
- Còpia de Seguretat i Restauració
Mòdul 6: Seguretat i Control d'Accés
- Assegurant Elasticsearch
- Autenticació i Autorització d'Usuaris
- Control d'Accés Basat en Rols
- Auditoria i Compliment
Mòdul 7: Integracions i Ecosistema
- Elasticsearch amb Logstash
- Elasticsearch amb Kibana
- Elasticsearch amb Beats
- Elasticsearch amb Altres Eines