1. Espaces #
Un Kibana, plusieurs équipes.
Spaces #
Un espace regroupe dashboards, data views, règles et autres objets d'une équipe ; il peut masquer les fonctions inutiles (par exemple Security pour une équipe produit).
curl -s -X POST localhost:5601/api/spaces/space -u elastic:$PASS -H 'kbn-xsrf: true' \
-H 'Content-Type: application/json' \
-d '{"id": "equipe-web", "name": "Équipe web", "disabledFeatures": ["siem", "securitySolutionCases"]}'2. Rôles et utilisateurs #
Qui voit quoi.
Rôles #
Un rôle combine des privilèges Elasticsearch (sur les index : lire, écrire) et des privilèges Kibana (par espace et par fonction : lecture ou tout).
curl -s -X PUT localhost:5601/api/security/role/lecteur_web -u elastic:$PASS -H 'kbn-xsrf: true' \
-H 'Content-Type: application/json' -d '{
"elasticsearch": { "indices": [ { "names": ["logs-*-web"], "privileges": ["read", "view_index_metadata"] } ] },
"kibana": [ { "base": ["read"], "spaces": ["equipe-web"] } ] }'
# Utilisateur natif (en production : SSO SAML ou OIDC)
curl -s -X POST localhost:9200/_security/user/alice -u elastic:$PASS -H 'Content-Type: application/json' \
-d '{"password": "un-mot-de-passe-solide", "roles": ["lecteur_web"], "full_name": "Alice"}'Erreur Courante : Le compte elastic est un super-utilisateur : réservez-le à l'installation, créez des comptes nominatifs et des clés d'API à droits limités pour les automatisations.Sécurité au niveau document et champ #
Avec la licence adéquate, un rôle peut restreindre les documents visibles (requête de filtre, par exemple organization.id: 42) et les champs (masquer user.email).
3. Superviser Kibana #
L'outil d'observabilité doit être observé.
Points à suivre #
| Point | Où |
|---|---|
| État et statut des plugins | GET /api/status |
| Temps de réponse et mémoire | Stack Monitoring (collecte par Elastic Agent ou Metricbeat) |
| Règles en échec ou en retard | Stack Management > Rules, journal d'événements |
| Tâches de fond (Task Manager) | GET /api/task_manager/_health |
curl -s localhost:5601/api/status -u elastic:$PASS | jq '.status.overall'
curl -s localhost:5601/api/task_manager/_health -u elastic:$PASS | jq '.status'