Est-il possible d'activer l'authentification dans Kibana afin de limiter l'accès à un tableau de bord pour qu'il ne soit accessible qu'à des utilisateurs particuliers?
Kibana lui-même ne prend pas en charge l'authentification ni la restriction de l'accès aux tableaux de bord.
Vous pouvez restreindre l'accès à Kibana 4 en utilisant nginx comme proxy devant Kibana, comme décrit ci-après: https://serverfault.com/a/345244 . Il suffit de définir proxy_pass sur le port 5601 et de désactiver ce port sur le pare-feu pour les autres. Cela activera ou désactivera complètement Kibana.
Elastic dispose également d'un outil appelé Shield qui vous permet de gérer la sécurité de elasticsearch. Avec Shield, vous pouvez par exemple permettre à quelqu'un d'analyser des données dans des index spécifiques avec des autorisations en lecture seule. https://www.elastic.co/products/shield
Edit: Elastic a un issue sur github et il est recommandé de utiliser Shield.
Remember Shield fournit uniquement un contrôle d'accès au niveau de l'index. Cela signifie que l'utilisateur A pourra voir tous les tableaux de bord, mais que certains d'entre eux seront vides (car il n'a pas accès à tous les index).
Vérifiez ce plugin nommé elasticsearch-readonlyrest . Il permet un contrôle d’accès facile, par authentification ou ip/network, en-tête x-forwarded-for et permet limiter l'accès aux index par utilisateur. Il est simple à installer et devrait donner assez de contrôle à la plupart des gens.
Si vous avez besoin de plus de contrôle, vous pouvez utiliser search-guard , une alternative gratuite au bouclier.
Kibana4 ne le supporte pas actuellement.
J'ai réussi l'authentification en installant haproxy.
$ Sudo nano /etc/kibana/kibana.yml
server.Host: "localhost"
2.Installez haproxy sur la même machine que kibana
$ Sudo apt update && Sudo apt install haproxy
$ Sudo nano /etc/haproxy/haproxy.cfg
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
# Default ciphers to use on SSL-enabled listening sockets.
# For more information, see ciphers(1SSL). This list is from:
# https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
ssl-default-bind-options no-sslv3
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 10m
timeout client 10m
timeout server 10m
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
userlist UsersFor_Kibana
user kibana insecure-password myPASSWORD
frontend localnodes
bind *:80
mode http
default_backend nodes
backend nodes
acl AuthOkay_Kibana http_auth(UsersFor_Kibana)
http-request auth realm Kibana if !AuthOkay_Kibana
mode http
balance roundrobin
option forwardfor
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
option httpchk HEAD / HTTP/1.1\r\nHost:localhost
server server1 127.0.0.1:5601 check
nom d'utilisateur: - "kibana" mot de passe: - "myPASSWORD"
Lorsque vous parcourez http: // IP: 80 , une fenêtre contextuelle s’ouvre pour l’authentification.