it-swarm.com.de

Authentifizierung in Elasticsearch

Wie definiere ich den Sicherheitszugriff in Elasticsearch? Ich habe das elasticsearch-head-Plugin, aber für Ihren Zugriff ist keine Sicherheit erforderlich.

75
Bruce

Das in dieser Antwort erwähnte Plugin wird nicht mehr aktiv unterstützt.


In elasticsearch ist keine Zugriffskontrolle integriert. Sie müssten also einen Reverse-Proxy einrichten (hier ist ein Blog-Beitrag wie man Nginx einrichtet). Verwenden Sie eines der Elasticsearch-Plugins von Drittanbietern wie https://github.com)/Asquera/elasticsearch-http-basic oder benutze das offizielle Sicherheits-Plugin Shield .

63
imotov

<shamelessPlug>

Tut mir leid, aber ich habe ernsthafte Zweifel an all diesen Plugins und Proxys, die nur versuchen, Abfragen mit schlampigen regulären Ausdrücken auf HTTP-Ebene zu erfassen.

Werden Sie die gesamte mögliche ES-Syntax, die einen Schreibvorgang ausführen kann, neu ausdrücken? Wie filtert man nach Index? Wie wäre es mit Index-Aliasen? Multi-Index-Abfragen?

Die einzige saubere Methode zur Zugriffssteuerung ist, nachdem ElasticSearch die Abfragen analysiert hat. Genau das macht Shield doch!

Ich habe ein MIT lizensiertes Plugin ( readonly-rest-plugin ) geschrieben, das genau dies tut.

Sie können die Anfrage abgleichen, indem Sie:

  • ✔️ Hostname, IP und IP mit Netzmaske

  • ✔️ Indizes (Wildcards werden unterstützt) und Index-Aliase werden aufgelöst

  • ✔️ HTTP Basic Auth

Es hat auch erstklassige Unterstützung für die Kibana-Authentifizierung :)

</shamelessPlug>

10
sscarduzio

Elasticsearch hat jetzt ein Sicherheits-Plugin http://www.elasticsearch.org/blog/shield-know-security-coming-soon/

7
AhmedAlawady

Update : Dies funktioniert ziemlich gut und ist (für die meisten Funktionen) kostenlos und Open Source: https://github.com/floragunncom/search-guard

HINWEIS: Das in diesem Artikel erwähnte Plugin wird nicht mehr gepflegt


Vielleicht hilft das: https://github.com/salyh/elasticsearch-security-plugin

Dieses Plugin fügt Elasticsearch in Form von separaten Modulen die Sicherheitsfunktionalität http/rest hinzu. Anstelle von Netty wird ein eingebettetes Tomcat 7 verwendet, um http/rest-Anforderungen zu verarbeiten.

Derzeit werden Kerberos und NTLM für die benutzerbasierte Authentifizierung und Autorisierung über Bibliothekswaffeln von Drittanbietern unterstützt (nur auf Windows-Servern). Für UNIX-Server wird Kerberos über die Drittanbieter-Bibliothek tomcatspnegoad unterstützt (Funktioniert mit jeder Kerberos-Implementierung. Für die Autorisierung werden Active Directory und generisches LDAP unterstützt).

Sie können dieses Plugin auch ohne Kerberos/NTLM verwenden, aber dann ist nur die hostbasierte Authentifizierung verfügbar.

6
salyh

Die einzige Möglichkeit, die Sicherheit in Elasticsearch zu aktivieren, ist das Plugin X-Pack.

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

Dies ist ein Mehrzweck-Plugin, das sich gut für Sicherheitszwecke eignet, da Sie auch die Überwachung verwenden und die Warnungen und Benachrichtigungen gemäß Ihren Anforderungen konfigurieren können.

Ich bin mir sicher, dass Elasticsearch dies für die Anmeldung fortsetzen wird, da dies bereits sehr anerkannt ist.

4
rohithnama

Ich bin ein Anfänger in ElasticSearch, aber ich bin der Meinung, dass das X-Pack-Plugin hier als Antwort erscheinen sollte: https://www.elastic.co/guide/en/x-pack/current/index.html

Nach meinem Verständnis ist X-Pack jetzt der De-facto-Standard für die Sicherung von ElasticSearch (und vielem mehr), einschließlich der Authentifizierung.

3
pinkasey

Versuchen Sie Schild . Es verfügt über Authentifizierung und Autorisierung. Für den Moment benötigt es eine Lizenz. Es wird nicht lange dauern, bis Leute ähnliche Open-Source-Plugins erstellen.

3

Wenn Sie die Basisauthentifizierung mit Kibana3 verwenden möchten, ist hier meine Lösung:

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

Unterstützt nicht nur das BasicAuth ES-Backend, sondern auch GoogleOAuth und BasicAuth für den Client. Bitte geben Sie einen Stern, wenn es für Sie funktioniert, danke.

3
Felix

Da ElasticSearch eine Art Datenbankdienst ist, möchten Sie wahrscheinlich nicht, dass er ohnehin öffentlich verfügbar gemacht wird.

Ich vertraue nicht darauf, dass Plugins dies für mich tun, also habe ich es mit einem Nginx-Proxy gemacht.

Dieses Tutorial ist sehr, sehr hilfreich:

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

In Bezug auf eine spezifische Lösung für dieses Problem bin ich auf Folgendes gestoßen: Eine einfache Implementierung eines Reverse-Proxy-Ansatzes, wie in anderen Antworten erwähnt:

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

Als Einschränkung scheint es, dass zumindest einige Elasticsearch-Benutzer Nginx nicht als die optimale Lösung betrachten, aber ich denke, dass dies von den Besonderheiten Ihrer Authentifizierungsanforderungen abhängt (RBAC, Benutzeranzahl, Anzahl der Indizes, Häufigkeit der Zugriffslistenänderungen) ). Für einige Benutzer (einschließlich mir) ist das erste Beispiel ausreichend.

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

Wenn Sie feststellen, dass Ihre Anforderungen von nginx nicht erfüllt werden, funktioniert möglicherweise Folgendes: https://github.com/lukas-vlcek/node.es

2
wjimenez5271