Role-based access control and external authentication is GA in ECE 2.3 | Elastic Blog
Engineering

Rollenbasierte Zugriffssteuerung und externe Authentifizierung in ECE 2.3 allgemein verfügbar

Mit großer Freude geben wir bekannt, dass die rollenbasierte Zugriffssteuerung und Authentifizierung mit externen Quellen ab Version 2.3 von Elastic Cloud Enterprise (ECE) allgemein verfügbar ist. Mit diesen Funktionen können Sie mehrere Benutzer einrichten, deren Zugriff auf die ECE-Plattform mit Rollen gesteuert wird. Sie können Benutzer nativ in ECE hinzufügen und Ihre eigenen Verzeichnisserver oder Identitätsanbieter verbinden, um den Zugriff für Ihre vorhandenen Benutzer zu konfigurieren.

Wir haben die Beta-Unterstützung für diese Funktionen ursprünglich in ECE 2.2 hinzugefügt. Mit Version 2.3 haben wir nicht nur Bugs ausgebügelt, sondern unterstützen jetzt neben den vorhandenen LDAP- und SAML-Optionen auch Active Directory.

Wie funktioniert die Lösung?

Wenn Sie RBAC für ECE aktivieren, wird ein Sicherheits-Deployment zum System hinzugefügt, mit dem Sie die Authentifizierungskonfiguration und die Berechtigungen verwalten können. Wenn ein Benutzer versucht, sich anzumelden, überprüft ECE die Authentifizierung mithilfe des Sicherheits-Deployments und führt bei Bedarf ein Fallback auf die Systembenutzer durch. Wenn sich ein Benutzer erfolgreich authentifiziert, wendet ECE die zugewiesenen Rollen an und übersetzt sie in differenzierte Berechtigungen, um festzulegen, welche Daten der Benutzer abrufen bzw. welche Aktionen er ausführen kann.

Achtung: Die ECE-Rollen der Benutzer sind separat von den Anmeldeinformationen der Benutzer für die in ECE gehosteten Deployments. Ein Benutzer kann beispielsweise keinen Zugriff auf ECE haben, dafür aber Administratorzugriff auf die gehosteten Deployments, oder umgekehrt.

Welche Rollen sind verfügbar?

ECE bietet vielfältige Operationen auf Plattform- und auf Deployment-Ebene an. Um Administratoren die Definition und Pflege ihrer eigenen Rollendefinitionen zu ersparen, wird ECE mit einer Reihe von vordefinierten Rollen ausgeliefert, die die gängigsten Anwendungsfälle abdecken. Diese Rollen werden laufend aktualisiert, wenn neue Funktionen eingeführt werden, damit Sie Ihre Definitionen nicht selbst pflegen müssen.

Unten finden Sie eine Beschreibung der Rollen. Jeder Benutzer kann eine Kombination aus mehreren Rollen haben. Ein „Platform Admin“ hat beispielsweise alle Berechtigungen und braucht daher keine weiteren Rollen. Ein „Platform Viewer“ kann sämtliche Daten anzeigen, aber keine Änderungen vornehmen. Diese Rolle kann daher mit der Rolle „Deployments Manager“ kombiniert werden.

Platform Admin

Benutzer mit dieser Rolle können sämtliche Daten anzeigen und alle Operationen in ECE auf dieselbe Weise ausführen wie der admin-Benutzer auf Systemebene (bzw. root in ECE 1.x), der bei der Installation erstellt wird. Diese Rolle wird normalerweise nur an Administratoren vergeben, die für die gesamte ECE-Plattform verantwortlich sind. Der Abschnitt „Platform“ in der GUI ist ein gutes Beispiel. In diesem Abschnitt werden Informationen über Allocators und ihre Deployments angezeigt, und Allocators können freigegeben oder in den Wartungsmodus versetzt werden.

Platform Viewer

Benutzer mit dieser Rolle haben Leseberechtigungen für die gesamte Plattform und die gehosteten Deployments. Die zugewiesenen Berechtigungen entsprechen denen des readonly-Benutzers auf Systemebene. Dies ist hilfreich, um beispielsweise den Status von ECE zu überwachen.

Deployments Manager

Benutzer mit dieser Rolle können die Deployments in der Plattform erstellen und verwalten. Benutzer mit dieser Rolle können sämtliche Aktionen für ein Deployment ausführen: Scale-Up oder Scale-Down, Snapshots konfigurieren, Knoten neu starten, Passwörter zurücksetzen und mehr. Benutzer mit dieser Rolle haben keinen Zugang zu Operationen auf Plattformebene und zu Ressourcen wie Deployment-Vorlagen, Instanzkonfigurationen, Allocators, System-Deployments usw.

Diese Rolle eignet sich für Benutzer, die zwar Deployments verwalten müssen, aber keine Informationen auf Plattformebene benötigen, z. B. die Leiter von Entwicklungsteams.

Deployments Viewer

Benutzer mit dieser Rolle können Deployments zwar anzeigen, jedoch keinerlei Änderungen vornehmen. Diese Rolle eignet sich für Supportmitarbeiter oder Mitglieder von Entwicklungsteams.

Native Benutzer verwalten

Die einfachste Art, um mit RBAC in ECE zu beginnen, ist die Erstellung von nativen Benutzern. Diese Benutzer werden im Sicherheits-Deployment im nativen Elasticsearch-Realm aufbewahrt. Sie unterstützen nur eine begrenzte Anzahl an Attributen: Benutzername, kompletter Name, E-Mail, Passwort, Rollen und ein Aktivierungs-Flag.

Klicken Sie im Navigationsmenü auf „Users“, um Ihre Authentifizierungsanbieter anzuzeigen, unter denen sich auch Ihr „Native Users“-Profil befindet. Öffnen Sie das Profil, um eine Liste sämtlicher nativer Benutzer anzuzeigen. Die Liste enthält auch die beiden Systembenutzer, die vom ECE-Installationsprogramm erstellt wurden. Diese Benutzer können nicht bearbeitet oder gelöscht werden, und ihre Passwörter können an dieser Stelle nicht zurückgesetzt werden. Weitere Informationen zum Zurücksetzen von Passwörtern finden Sie in der Dokumentation.

Demo: Erstellung von nativen Benutzern

Auf der Seite „Native Users“ können Sie native Benutzer erstellen, bearbeiten und löschen. Diese Benutzer können sich genau wie Systembenutzer bei ECE anmelden, und ihr Zugriff wird durch die Rollen gesteuert, die Sie ihnen zugewiesen haben.

Seite „User Settings“

In ECE 2.3 haben wir auch eine Seite mit Benutzereinstellungen hinzugefügt. Klicken Sie auf das Benutzersymbol oben rechts auf der Seite, und klicken Sie auf „Settings“. Wenn Sie als nativer Benutzer angemeldet sind, können Sie Ihren Namen und Ihre E-Mail-Adresse bearbeiten oder Ihr Passwort ändern. Wenn Sie als Benutzer von einem externen Authentifizierungsanbieter angemeldet sind, wird eine schreibgeschützte Seite mit grundlegenden Informationen, dem Namen und Typ des Authentifizierungsprofils und Ihren zugewiesenen Rollen angezeigt.

Demo: Benutzereinstellungen bearbeiten

Externe Authentifizierungsanbieter

Wenn Sie bereits einen LDAP, Active Directory- oder SAML-Server haben, kann ECE diesen Server für Authentifizierung und Autorisierung verwenden. Sie können sogar mehrere Server konfigurieren. In diesem Fall wird die Authentifizierung in der festgelegten Reihenfolge versucht, genau wie bei Elasticsearch. Wenn Sie Ihre vorhandenen Authentifizierungsquellen verwenden, können Sie Ihre Benutzer an einem zentralen Ort verwalten. Mit der Konfiguration der Rollenzuordnung für externe Anbieter können Sie die Benutzerattribute zu Rollen in ECE zuordnen, und ECE übernimmt Änderungen an den Benutzerattributen, z. B. an Gruppenmitgliedschaften, automatisch.

Klicken Sie in der Übersicht der Authentifizierungsanbieter auf „Add provider“, und wählen Sie einen Typ aus. Auf der nächsten Seite können Sie den Anbieter konfigurieren. Wir werden uns die Konfigurationsoptionen für ein einfaches LDAP-Setup ansehen.

Demo: Erstellen eines LDAP-Anbieters

LDAP-Authentifizierungsanbieter

General LDAP settings:

  1. Jedes Profil hat einen Namen. Dieser Name dient nicht nur als Bezeichner für das Profil, sondern auch zum Generieren einer Realm-ID. Achtung: Die Realm-ID bleibt nach der Erstellung eines Profils immer gleich.
  2. Legen Sie mindestens einen LDAP-Server fest, inklusive der Protokollangabe ldap: oder ldaps: am Anfang. Wenn Sie eine DNS-basierte Strategie für den Lastenausgleich verwenden, können Sie nur einen einzigen Server angeben.
  3. Wählen Sie eine Strategie für den Lastenausgleich aus. Beachten Sie dabei die oben beschriebene Einschränkung.

Trusted certificates:

  1. Wenn der Schutzmechanismus Ihres LDAP-Servers voraussetzt, dass die Clients bestimmte SSL/TLS-Zertifikate benötigen, dann müssen Sie eine Paketdatei vorbereiten und über eine URL für ECE zugänglich machen. Weitere Details finden Sie in der Dokumentation.
  2. Falls Ihr Paket mit einem Passwort geschützt ist, geben Sie das Passwort hier ein.

Bind credentials:

  1. Falls für die Bindung mit dem LDAP-Server Anmeldeinformationen erforderlich sind, können Sie sie hier festlegen.
  2. Falls keine Anmeldeinformationen erforderlich sind, klicken Sie auf die Umschaltfläche „Bind anonymously“.

Search mode settings:

  1. Sie können die einzelnen Details für eine Benutzersuche festlegen. Weitere Informationen zu diesen Feldern finden Sie in der Dokumentation. Als Minimum sollten Sie den Wert „Base DN for users“ festlegen, z. B. „cn=users,dc=example,dc=com“.
  2. Falls Sie eine Vorlage verwenden müssen, um LDAP-Abfragen zu stellen, klicken Sie auf das Optionsfeld „Template“, und wählen Sie eine oder mehrere Vorlagen aus.

Group search settings:

  1. Analog zu den Einstellungen für den Suchmodus können Sie hier festlegen, wie ECE nach den Gruppen eines Benutzers suchen soll. Wir empfehlen, hier den Wert „Base DN for groups“ festzulegen, z. B. „ou=groups,dc=example,dc=com“.

Role mappings:

  1. Jeder Benutzer benötigt eine oder mehrere Rollen, um mit ECE interagieren zu können. Sie können Standardrollen festlegen, die allen Benutzern nach der erfolgreichen Authentifizierung zugewiesen werden. Wenn Sie beispielsweise allen Benutzern die Rolle „Deployments Viewer“ zuweisen, können die Benutzer alle in ECE gehosteten Deployments anzeigen, ohne jedoch die Daten bearbeiten zu können.
  2. Alternativ können Sie die Rollen auch über die Rollenzuordnung verteilen. Diese Regeln legen fest, dass bestimmte Rollen zugewiesen werden, wenn ein Benutzer-DN oder Gruppen-DN mit einem bestimmten Wert übereinstimmt. Sie können beliebig viele Zuordnungen einrichten. So können etwa alle IT Ops-Benutzer die Rolle „Deployment Viewer“ erhalten, alle Entwickler die Rolle „Deployment Manager“, und alle Administratoren die Rolle „Platform Viewer“.

Wenn Sie anschließend auf Create profile klicken, übernimmt ECE die neue Konfiguration für das Sicherheits-Deployment. Anschließend sollten Sie sich mit verschiedenen LDAP-Benutzern anmelden, um zu überprüfen, ob die Authentifizierung funktioniert und die richtigen Rollen zugewiesen werden. Sie können die Rollen entweder direkt auf der Seite „User Settings“ überprüfen, oder Sie können durch die GUI navigieren und sich vergewissern, dass die erwarteten Daten und Funktionen angezeigt werden.

Active Directory- und SAML-Authentifizierungsanbieter

Aus der Perspektive von ECE funktioniert dieser Prozess ähnlich wie für LDAP. Sie erstellen einen SAML- oder Active Directory-Authentifizierungsanbieter, geben ihm einen Namen, legen fest, wie ECE mit dem Server kommuniziert und definieren die gewünschten Zuordnungen.

In der Dokumentation finden Sie eine vollständige Anleitung zum Konfigurieren eines SAML-Authentifizierungsanbieters oder eines Active Directory-Authentifizierungsanbieters.

REST API-Unterstützung

Alle oben beschriebenen Aktionen können auch mit der REST API ausgeführt werden. So können Sie beispielsweise eine Liste aller Benutzer abrufen, inklusive der aktuell deaktivierten Benutzer:

GET /api/v1/users?include_disabled=true

Angenommen, Sie möchten den Zugriff für die neue Systemadministratorin Sarah konfigurieren. Sie können den neuen nativen Benutzer für sie wie folgt erstellen:

POST /api/v1/users
{
  "user_name": "sarah",
  "security": {
    "roles": ["ece_platform_admin"],
    "password": "deadb33f"
  }
}

Um Sarahs Zugriff zu ändern, können Sie anschließend eine PATCH-Anfrage mit dem Feld senden, das Sie ändern möchten, in diesem Fall die Rollen:

PATCH /api/v1/users/sarah
{
  "security": {
    "roles": ["ece_platform_viewer"]
  }
}

Bei Bedarf können Sie Sarahs Konto mit einer DELETE-Anfrage löschen:

DELETE /api/v1/users/sarah

Weitere Details und Beispiele für die Endpunkte der Authentifizierungsanbieter finden Sie in der Dokumentation der REST API.

Jetzt loslegen

Eine vollständige Liste der Änderungen in ECE 2.3 finden Sie in den Versionshinweisen, und falls Sie die Lösung selbst ausprobieren möchten, können Sie noch heute eine kostenlose 30-tägige Testversion aktivieren.