web-dev-qa-db-fra.com

Authentification dans Elasticsearch

Comment définir un accès sécurisé dans Elasticsearch? J'ai le plugin elasticsearch-head mais votre accès ne nécessite aucune sécurité.

75
Bruce

Le plug-in mentionné dans cette réponse n'est plus activement pris en charge.


Il n'y a pas de contrôle d'accès intégré dans elasticsearch. Vous devez donc configurer un proxy inverse (voici un article de blog comment configurer nginx), utilisez l’un des plugins tiers elasticsearch tels que https://github.com/Asquera/elasticsearch-http-basic ou utilisez le plugin de sécurité officiel Shield .

63
imotov

<shamelessPlug>

Désolé, mais j'ai de sérieux doutes sur tous ces plugins et mandataires qui ne tentent que de capturer les requêtes avec des expressions rationnelles bâclées au niveau HTTP.

Allez-vous utiliser la syntaxe de toutes les syntaxes ES possibles pour effectuer une écriture? Comment filtrez-vous par index? Qu'en est-il des alias d'index? Requêtes multi-index?

Le seul moyen propre de contrôler l'accès est APRÈS qu'ElasticSearch ait analysé les requêtes. C'est exactement ce que fait Shield après tout!

J'ai écrit un MIT ( readonly-rest-plugin )) qui fait exactement cela.

Vous pouvez correspondre à la demande par:

  • ✔️ Nom d'hôte, IP et IP avec masque de réseau

  • ✔️ Les index (caractères génériques supportés) et les alias d'index sont résolus

  • ✔️ HTTP Basic Auth

Il dispose également d'un support de première classe pour l'authentification Kibana :)

</shamelessPlug>

10
sscarduzio

Elasticsearch a maintenant un plugin de sécurité http://www.elasticsearch.org/blog/shield-know-security-coming-soon/

7
AhmedAlawady

Mise à jour : Cela fonctionne plutôt bien et est (pour les fonctionnalités les plus courantes) gratuit et open source: https://github.com/floragunncom/search-guard

NOTE: Le plugin mentionné dans cet article n'est plus mis à jour.


Peut-être que cela aide: https://github.com/salyh/elasticsearch-security-plugin

Ce plugin ajoute une fonctionnalité de sécurité http/rest à Elasticsearch sous forme de modules séparés. Au lieu de Netty, un Tomcat 7 intégré est utilisé pour traiter les requêtes http/rest.

Actuellement, pour l’authentification et l’autorisation utilisateur Kerberos et NTLM sont pris en charge par l’intermédiaire d’une bibliothèque tierce (uniquement sur les serveurs Windows). Pour les serveurs UNIX, Kerberos est pris en charge par la bibliothèque tierce tomcatspnegoad (fonctionne avec toute implémentation Kerberos. Pour l'autorisation, Active Directory et le protocole LDAP générique sont pris en charge).

Vous pouvez également utiliser ce plug-in sans Kerberos/NTLM, mais seule l'authentification basée sur l'hôte est disponible.

6
salyh

Le seul moyen préférable d'activer la sécurité dans Elasticsearch consiste à utiliser le plugin X-Pack.

https://www.elastic.co/guide/en/x-pack/current/xpack-introduction.html

Ceci est un plugin polyvalent et conviendra parfaitement pour des raisons de sécurité, car vous pouvez également utiliser la surveillance et configurer les alertes et les notifications selon vos besoins.

Comme il est déjà hautement reconnu, je suis sûr que Elasticsearch poursuivra cette procédure pour la connexion.

4
rohithnama

Je suis très novice dans ElasticSearch, mais j'estime que le plugin X-Pack devrait apparaître ici comme une réponse: https://www.elastic.co/guide/fr/x-pack/current/index.html

Je crois comprendre que X-Pack est désormais le standard de facto pour sécuriser ElasticSearch (et bien plus encore), y compris l’authentification.

3
pinkasey

Essayez bouclier . Il a l'authentification et l'autorisation. Pour l'instant, il faut une licence. Ce ne sera pas long avant que les gens créent des plugins open source similaires.

3
Bharath Lakshman

Si vous souhaitez utiliser l'authentification de base avec Kibana3, voici ma solution:

https://github.com/fangli/kibana-authentication-proxy

Prenez en charge non seulement le backend basicAuth ES, mais également GoogleOAuth et BasicAuth pour le client. S'il vous plaît donner une étoile si cela fonctionne pour vous, merci.

3
Felix

Comme ElasticSearch est un peu un service de base de données, vous ne voudriez probablement pas qu’il soit exposé publiquement de toute façon.

Je ne fais pas confiance aux plugins pour faire ça pour moi, alors je l'ai fait avec un proxy nginx.

Ce tutoriel est très très utile:

http://www.minvolai.com/blog/2014/08/Setting-up-a-Secure-Single-Node-Elasticsearch-server-behind-Nginx/Setting-up-a-Secure-Single- Node-Elasticsearch-server-behind-Nginx /

2
Panthro

En ce qui concerne une solution spécifique à ce problème, j'ai rencontré ce qui suit, qui est une mise en œuvre simple d'une approche de proxy inverse, comme mentionné dans d'autres réponses:

https://Gist.github.com/jpluscplusm/9227777

Comme mise en garde, il semble qu'au moins certains membres d’Elasticsearch ne considèrent pas nginx comme la solution optimale, mais je pense que cela dépend des exigences de votre authentification (RBAC, nombre d’utilisateurs, nombre d’index, fréquence de modification de la liste d’accès). ) Pour certains utilisateurs (y compris moi-même), le premier exemple suffit.

http://www.elasticsearch.org/blog/restricting-users-kibana-filtered-aliases/

Si vous trouvez que nginx respecte vos exigences spécifiques, cela pourrait fonctionner: https://github.com/lukas-vlcek/node.es

2
wjimenez5271