Anlegen zusätzliche Benutzer inklusive Rechteverwaltung

Mittels OpenSearch-Dashboards können zusätzliche Benutzer angelegt werden, damit bspw. bei dem Betrieb mehrerer Shopware-Instanzen o. ä. nicht für jede Instanz der Benutzer "admin" verwendet werden muss und Zugriffsmöglichkeiten so effektiv eingeschränkt werden können.


Vorraussetzungen

  • OpenSearch-Server mit OpenSearch-Dashboards
  • Zugriff mittels "admin"-Benutzer auf OpenSearch-Dashboards



Benutzer anlegen

Melden Sie sich zunächst bei OpenSearch-Dashboards mit den Zugangsdaten an, die im Passwort-Tresor des Servers hinterlegt sind.

Navigieren Sie anschließend in den Einstellungen zu "Security" → "Internal Users" und erstellen Sie hier über die Schaltfläche "Create internal user" einen neuen Benutzer und vergeben ein sicheres Kennwort für diesen.


Wir empfehlen, die folgenden Sonderzeichen bei der Kennwort-Vergabe auszuschließen, da diese nicht korrekt durch OpenSearch oder ggf. durch eine angebundene Applikation wie Shopware verarbeitet werden können: / # $



Benutzerrolle erstellen

Wählen Sie anschließend links in der Sidebar "Roles" aus und erstellen Sie über die Schaltfläche "Create role" eine neue Benutzerrolle für den soeben erstellten Benutzer.


Vergeben Sie zunächst einen Namen und fügen Sie im nächsten Schritt die nachfolgenden Cluster-Berechtigungen dieser Rolle hinzu:

  • cluster_composite_ops
  • cluster:monitor/main



Damit der Benutzer lediglich auf bestimmte Indices zugreifen kann, müssen die erteilten Index-Berechtigungen an Index-Patterns gebunden werden.


Hierbei ist zu beachten, dass bestimmte Berechtigungen auf alle Indices gewährt werden müssen (siehe nachfolgendes Bild → *-Pattern), damit ein Zugriff auf die eigenen Indices überhaupt möglich ist und die Berechtigungen des benutzerspezifischen Patterns ("test_product*) korrekt angewendet werden. Wenn die Berechtigungen wie auf dem nachfolgenden Bild vergeben werden, kann der zusätzliche Benutzer nur auf die Indices zugreifen bzw. Indices erstellen, die dem vergebenen Pattern entsprechen und hat hier die vollen Zugriffsmöglichkeiten.


Berechtigungen für das *-Pattern:

  • get
  • indices:data/read/search


Berechtigungen für das benutzerspezifische Pattern (test_product*):

  • indices_all


Durch die Nutzung des *-Pattern ist es allerdings möglich, dass ein Benutzer alle verfügbaren Indices und damit alle Index-Namen abrufen kann. Dieses ist aufgrund eines bekannten Bugs jedoch erforderlich, damit ein Zugriff auf die Indices überhaupt möglich ist, da ansonsten der Zugriff mit dem Statuscode 401 Unauthorized zurückgewiesen wird.


Mit der Schaltfläche "Create" im unteren Bereich der aktuellen Ansicht kann die Erstellung der Benutzerrolle abgeschlossen werden.



Mapping der Benutzerrolle

Wählen Sie anschließend in der Übersicht aller verfügbar Benutzerrollen die soeben erstellte Rolle aus und wechseln Sie im oberen Bereich auf den Reiter "Mapped users".



Fügen Sie über die Schaltfläche "Manage Mapping" den zuvor erstellten Benutzer unter "Users" hinzu und bestätigen Sie das neue Mapping über die Schaltfläche "Map", damit die neuen Benutzerrechte für den Benutzer aktiv werden.




Zusatzberechtigungen für OpenSearch-Dashboards

Sofern der Benutzer Zugriff auf seine Indices mittels OpenSearch-Dashboards erhalten soll und OpenSearch nicht nur an Shopware oder einer ähnlichen Applikation angebunden werden soll, müssen die folgenden zusätzlichen Cluster-Berechtigungen erteilt werden:

  • cluster:monitor/state
  • cluster:monitor/health



Des Weiteren sind die folgenden zusätzlichen Index-Berechtigungen für das *-Pattern erforderlich:

  • indices:monitor/setting/get
  • indices:monitor/stats