Kategorien
Elasticsearch

Authentifizierung mit X-Pack für Elasticsearch einrichten

Um eine einfach HTTP basic authentication einzurichten für Elasticsearch mit Username und Passwort muss man als erstes X-Pack installieren.

Danach sollten alle Funktionen automatisch mit Basic Auth geschützt sein. Nach der Installation steht ein Default-User bereit, um weiterarbeiten zu können:

Name: elastic
Password: changeme

Damit können dann erfolgreich Requests gemacht werden:

curl --user elastic:changeme -XGET 'localhost:9200'

Anlegen eigener User

Nun könnne eigene User hinzugefügt werden:

curl --user elastic:changeme -XPOST 'hlocalhost:9200/_xpack/security/user/SebastianViereck?pretty' -H 'Content-Type: application/json' -d'
{
  "password" : "thePassword",
  "roles" : [ "superuser"],
  "full_name" : "Sebastian Viereck",
  "email" : "email@sebastianviereckEmails.de",
  "metadata" : {
    "intelligence" : 7
  },
  "enabled": true
}

Danach können sofort Requests mit dem User gemacht werden:

curl --user SebastianViereck:thePassword -XGET 'localhost:9200'

Es sollten eigene Rollen angelegt werden und benutzt werden oder wie hier die vorgefertigten Rollen (superuser) benutzt werden.

Deaktivieren des Elastic Users

Sehr wichtig: Natürlich muss der Default elastic User mit dem „changeme“ Passwort wieder deaktiviert werden. In der elasticsearch.yml muss dafür der folgende Parameter eingesetzt werden:

xpack.security.authc.accept_default_password: false

Und der elasticsearch Service neugestartet werden:

 sudo service elasticsearch restart

Zur Kontrolle sollte bei dem Request eine Fehlermeldung erscheinen:

curl --user elastic:changeme -XGET 'localhost:9200'

Weitere Verbesserungen der Sicherheit

Es sollte unbedingt eine Daten-Verschlüsselung mit SSL benutzt werden.

Der IP Raum, mit dem überhaupt kommuniziert werden darf, sollte auch eingeengt werden.