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é.
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 .
<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>
Elasticsearch a maintenant un plugin de sécurité http://www.elasticsearch.org/blog/shield-know-security-coming-soon/
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.
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.
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.
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.
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.
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:
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