web-dev-qa-db-fra.com

Comment définir l'authentification dans kibana

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?

33
Mangoski

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.

  1. Installez Shield (plugin pour elasticsearch) en suivant ces instructions
  2. Configurer les rôles pour les utilisateurs de Kibana
  3. Configurez Kibana pour travailler avec 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).

29
Luděk Veselý

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.

10
higuita

Kibana4 ne le supporte pas actuellement.

3
gillyb

J'ai réussi l'authentification en installant haproxy.

  1. Restreindre kibana localement

$ 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.

0
ShreePrakash