RousselTMLEARNING

Observabilité

Sécurité avancée Elasticsearch : TLS, certificats, clés d'API, FLS, DLS et audit

Sécuriser Elasticsearch en profondeur : TLS transport et HTTP, gestion des certificats avec elasticsearch-certutil, cycle de vie des clés d'API, sécurité au niveau des champs et des documents, journal d'audit.

1. TLS et certificats #

Chiffrer tout.

Certificats #

Couches de sécurité d'Elasticsearch
bin/elasticsearch-certutil ca --pem --out ca.zip
bin/elasticsearch-certutil cert --pem --ca-cert ca/ca.crt --ca-key ca/ca.key --in instances.yml --out certs.zip
# elasticsearch.yml
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.key: certs/es01/es01.key
xpack.security.transport.ssl.certificate: certs/es01/es01.crt
xpack.security.transport.ssl.certificate_authorities: certs/ca/ca.crt
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.key: certs/es01/es01.key
xpack.security.http.ssl.certificate: certs/es01/es01.crt
Bonne Pratique : Suivez la date d'expiration des certificats (GET _ssl/certificates) et renouvelez-les par une procédure écrite et testée : un certificat de transport expiré coupe le cluster.

2. Clés d'API et privilèges fins #

Le moindre privilège.

Exemples #

POST _security/api_key
{ "name": "ingest-nginx", "expiration": "90d",
  "role_descriptors": { "writer": { "indices": [ { "names": [ "logs-nginx-*" ], "privileges": [ "create_doc", "auto_configure" ] } ] } } }

PUT _security/role/support-eu
{ "indices": [ { "names": [ "orders-*" ],
                 "privileges": [ "read" ],
                 "field_security": { "grant": [ "*" ], "except": [ "customer.email", "card.*" ] },
                 "query": { "term": { "region": "eu" } } } ] }
  • Une clé d'API par application, avec expiration et privilèges limités ; rotation planifiée (POST _security/api_key/_invalidate).
  • Field-level security : masquer des champs ; document-level security : restreindre les documents par requête.
  • Audit : xpack.security.audit.enabled: true journalise authentifications, refus et changements de rôles.
À savoir : Certaines fonctionnalités dépendent de la version et du niveau de licence (Basic, Platinum, Enterprise) : vérifiez-les dans la documentation et la page des abonnements Elastic avant de les utiliser en production.

Articles liés

Architecture distribuée Elasticsearch : rôles des nœuds, shards, répliques et allocation

Comprendre le fonctionnement distribué d'Elasticsearch : rôles des nœuds, nœuds master et quorum, cluster sta…

Mappings et analyse de texte Elasticsearch : types de champs, analyseurs et mapping dynamique

Maîtriser les mappings Elasticsearch : types de champs (text, keyword, numériques, date, ip, nested), multi-f…

Ingestion Elasticsearch : Bulk API, ingest pipelines, enrich et reindex

Ingérer et transformer des données dans Elasticsearch : Bulk API, ingest pipelines et processeurs (grok, diss…

Pour aller plus loin