Configuration de la sécurité et de l'authentification TongSearch

Fondamentaux de la sécurité des clusters

La sécurisation d'un environnement TongSearch en production repose sur une stratégie multicouche. Il ne suffit pas de restreindre l'accès réseau ; il est impératif d'intégrer le chiffrement des flux, une authentification forte et un contrôle granulaire des accès (RBAC). Les piliers de cette configuration sont :

  • Chiffrement TLS : Protection des données en transit entre les nœuds et vers les clients.
  • Authentification : Identification rigoureuse des utilisateurs et des services.
  • Autorisation : Définition précise des droits via des rôles.
  • Audit : Suivi des activités pour détecter les anomalies.

Mise en œuvre du chiffrement TLS

Le protocole TLS (Transport Layer Secuirty) garantit l'intégrité et la confidentialité des échanges. TongSearch intègre l'utilitaire tongsearch-certutil pour simplifier la gestion des certificats.

Génération de l'autorité de certification (CA)

Pour signer les certificats du cluster, commencez par créer votre propre autorité de certification :

bin/tongsearch-certutil ca --out autorite-certification-tong.p12

Ce fichier .p12 servira de racine de confiance pour l'ensemble du déploiement.

Création des certificats de nœuds

Utilisez ensuite la CA pour générer les certificats spécifiques à chaque instance :

bin/tongsearch-certutil cert --ca autorite-certification-tong.p12 --out certificats-noeuds-tong.p12

Ce fichier contient la clé privée, le cetrificat signé et la chaîne de confiance de l'autorité.

Configuration du chiffrement de la couche transport

La communication interne au cluster (entre les nœuds) doit impérativement être sécurisée. Éditez le fichier tongsearch.yml :

xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: "/etc/tongsearch/securite/certificats-noeuds-tong.p12"
xpack.security.transport.ssl.truststore.path: "/etc/tongsearch/securite/certificats-noeuds-tong.p12"

Le mode de vérification certificate valide l'authenticité de la chaîne, tandis que le mode full vérifie également la correspondance avec le nom d'hôte (recommandé pour une sécurité maximale en production).

Sécurisation des accès HTTP

Pour protéger l'interface API REST exposée aux clients externes, activez TLS sur la couche HTTP :

xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: "/etc/tongsearch/securite/certificats-noeuds-tong.p12"
xpack.security.http.ssl.truststore.path: "/etc/tongsearch/securite/certificats-noeuds-tong.p12"

Une fois activé, l'accès au cluster se fera exclusivement via https://.

Contrôle d'accès basé sur les rôles (RBAC)

Le contrôle granulaire permet de limiter les privilèges au strict nécessaire. Les rôles sont définis dans roles.yml ou via l'API.

Définition d'un administrateur système

role_super_admin:
  cluster: [ "all" ]
  indices:
    - names: [ "*" ]
      privileges: [ "all" ]

Restriction pour les utilisateurs en lecture seule

role_lecteur_specifique:
  cluster: [ "monitor" ]
  indices:
    - names: [ "archives-2023-*", "donnees-publiques-*" ]
      privileges: [ "read", "view_index_metadata" ]

Diagnostic et résolution des problèmes de sécurité

La mise en place de la sécurité peut engendrer des erreurs de configuration complexes. Voici comment les aborder méthodiquement.

Échecs d'authentification

Si un utilisateur ne peut pas se connecter, vérifiez d'abord son existence locale :

./bin/tongsearch-users list

Pour réinitialiser ou ajouter un utilisateur avec un rôle spécifique :

./bin/tongsearch-users useradd identifiant_test -p motdepasse123 -r role_lecteur_specifique

Consultez les logs pour identifier les rejets :

grep "AuthenticationService" /var/log/tongsearch/tongsearch.log

Problèmes liés au protocole SSL/TLS

Les erreurs de type SSLHandshakeException indiquent souvent une discordance entre les certificats ou une autorité de certification non reconnue. Testez la connexion avec curl en spécifiant explicitement le certificat CA :

curl -u admin_user:secret --cacert /etc/tongsearch/securite/ca.crt -X GET "https://127.0.0.1:9200/_cluster/health"

Analyse des autorisations

Lorsqu'un utilisateur reçoit un message d'erreur de type "action forbidden", analysez les logs d'autorisation pour identifier le privilège manquant :

tail -n 100 /var/log/tongsearch/tongsearch.log | grep "AuthorizationService"

Cela permet de voir précisément quelle action (ex: indices:data/write/index) a été refusée sur quel index.

Étiquettes: TongSearch TLS ssl RBAC Cybersécurité

Publié le 13 juin à 07h32