MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Durchsetzung rollenbasierter Zugriffskontrollen mit ClusterControl

In der jüngsten Veröffentlichung von ClusterControl Version 1.8.2 von Multiplenines haben wir viele ausgefeilte Funktionen und Änderungen eingeführt. Eines der wichtigsten Features ist das neu verbesserte User Management System, das New User und LDAP Management abdeckt. Eine ergänzende vorhandene Funktion in ClusterControl ist die rollenbasierte Zugriffskontrolle (RBAC) für die Benutzerverwaltung, die im Mittelpunkt dieses Blogs steht.

Rollenbasierte Zugriffskontrolle in ClusterControl

Für diejenigen, die mit der rollenbasierten Zugriffssteuerung (RBAC) von ClusterControl nicht vertraut sind, handelt es sich um eine Funktion, mit der Sie den Zugriff bestimmter Benutzer auf bestimmte Datenbank-Cluster-Funktionen und administrative Aktionen oder Aufgaben einschränken können. Beispielsweise Zugriff auf Bereitstellungsfunktionen (Load Balancer hinzufügen, vorhandene Cluster hinzufügen), Verwaltungs- und Überwachungsfunktionen. Dies stellt sicher, dass nur autorisierte Benutzer basierend auf ihren jeweiligen Rollen arbeiten und anzeigen können, und vermeidet unerwünschtes Eindringen oder menschliche Fehler, indem der Zugriff einer Rolle auf administrative Aufgaben beschränkt wird. Der Zugriff auf die Funktionalität ist fein abgestuft, sodass der Zugriff von einer Organisation oder einem Benutzer definiert werden kann. ClusterControl verwendet ein Berechtigungs-Framework, um zu definieren, wie ein Benutzer basierend auf seiner Autorisierungsebene mit der Verwaltungs- und Überwachungsfunktion interagieren darf.

Die rollenbasierte Zugriffskontrolle in ClusterControl spielt eine wichtige Rolle, insbesondere für Admin-Benutzer, die sie ständig im Rahmen ihrer DBA-Aufgaben verwenden. Ein ClusterControl-DBA sollte mit dieser Funktion vertraut sein, da sie es dem DBA ermöglicht, Aufgaben an Teammitglieder zu delegieren, den Zugriff auf die ClusterControl-Funktionalität zu steuern und nicht alle Features und Funktionalitäten allen Benutzern zur Verfügung zu stellen. Dies kann durch die Verwendung der Benutzerverwaltungsfunktion erreicht werden, mit der Sie steuern können, wer was tun kann. Sie können beispielsweise ein Team wie Analyst, Entwickler oder DBA einrichten und Einschränkungen entsprechend ihrem Verantwortungsbereich für einen bestimmten Datenbankcluster hinzufügen.

ClusterControl-Zugriffssteuerung wird im folgenden Diagramm dargestellt

Einzelheiten zu den oben verwendeten Begriffen finden Sie unten. Ein Team kann einem oder mehreren der von ClusterControl verwalteten Datenbankcluster zugewiesen werden. Ein Team besteht aus leeren oder mehreren Benutzern in einem Team. Standardmäßig wird beim Erstellen eines neuen Teams immer das Super-Admin-Konto damit verknüpft. Durch das Löschen des Superadmins wird er nicht mit diesem neuen Team verknüpft.

Ein Benutzer und ein Cluster müssen einem Team zugewiesen werden; es ist eine obligatorische Implementierung innerhalb von ClusterControl. Standardmäßig ist das Super-Admin-Konto einem Admin-Team zugeordnet, das bereits standardmäßig erstellt wurde. Datenbank-Cluster werden standardmäßig auch dem Admin-Team zugewiesen.

Einer Rolle kann kein Benutzer zugewiesen sein oder sie kann mehreren Benutzern in Übereinstimmung mit ihrer ClusterControl-Rolle zugewiesen werden.

Rollen in ClusterControl

Rollen in ClusterControl sind eigentlich standardmäßig gesetzt. Es folgen diese Standardrollen:

  • Super Admin - Es ist eine versteckte Rolle, aber es ist die Rolle des Superadministrators (Superadmin), was bedeutet Alle Funktionen sind für diese Rolle verfügbar. Standardmäßig repräsentiert der Benutzer, den Sie nach einer erfolgreichen Installation erstellt haben, Ihre Super-Admin-Rolle. Außerdem wird beim Erstellen eines neuen Teams der Superadmin standardmäßig immer dem neuen Team zugewiesen.

  • Admin - Standardmäßig sind fast alle Funktionen sichtbar. Sichtbar zu sein bedeutet, dass Benutzer mit der Admin-Rolle Verwaltungsaufgaben ausführen können. Die Funktionen, die für diese Rolle nicht verfügbar sind, sind der Kundenberater und die SSL-Schlüsselverwaltung.

  • Benutzer – Integrationen, Zugriff auf alle Cluster und einige Funktionen sind für diese Rolle nicht verfügbar und werden von verweigert Ursprünglich. Dies ist nützlich, wenn Sie normale Benutzer zuweisen möchten, die nicht für Datenbank- oder Verwaltungsaufgaben vorgesehen sind. Benutzer mit der Benutzerrolle müssen einige manuelle Schritte ausführen, um andere Cluster anzuzeigen.

Rollen in ClusterControl sind beliebig, sodass Administratoren beliebige Rollen erstellen und sie einem Benutzer unter Teams zuweisen können.

Einführung in ClusterControl-Rollen

Sie können eine benutzerdefinierte Rolle mit eigenen Zugriffsebenen erstellen. Weisen Sie die Rolle einem bestimmten Benutzer auf der Registerkarte Teams zu. Dies kann erreicht werden, indem Sie die Benutzerverwaltung in der Seitenleiste in der rechten Ecke suchen. Siehe Screenshot unten:

Erzwingen rollenbasierter Zugriffskontrollen mit ClusterControl

Das Erzwingen von RBAC ist benutzerdomänenspezifisch, was den Zugriff eines Benutzers auf ClusterControl-Funktionen gemäß seinen Rollen und Berechtigungen einschränkt. Vor diesem Hintergrund sollten wir damit beginnen, einen bestimmten Nutzer zu erstellen.

Erstellen eines Benutzers in ClusterControl

Um einen Benutzer zu erstellen, starten Sie unter der Registerkarte Benutzerverwaltung ➝ Teams. Lassen Sie uns jetzt zuerst ein Team erstellen.

Nach der Erstellung gibt es ein Super-Admin-Konto, das standardmäßig verknüpft wird, sobald ein Team erstellt wird.

Jetzt fügen wir einen neuen Benutzer hinzu. Das Hinzufügen eines neuen Benutzers muss unter einem Team erfolgen, damit wir ihn unter DevOps erstellen können.

Wie Sie vielleicht bemerkt haben, befindet sich der neue Benutzer, den wir erstellt haben, jetzt unter der Rolle Benutzer, die standardmäßig in ClusterControl hinzugefügt wird. Dann steht das Team auch unter DevOps.

Grundsätzlich gibt es jetzt zwei Benutzer unter dem DevOps-Team, wie unten gezeigt:

Beachten Sie, dass Rollen benutzerdomänenspezifisch sind, sodass Zugriffsbeschränkungen nur für diesen bestimmten Benutzer gelten und nicht für das Team, dem sie angehören.

Admin vs. Benutzerrollen (Standardrollen in ClusterControl)

Da wir in ClusterControl standardmäßig zwei Rollen hinzugefügt haben, gibt es Einschränkungen, die standardmäßig eingestellt sind. Um zu erfahren, welche das sind, gehen Sie einfach zu  Benutzerverwaltung ➝ Zugriffskontrolle. Unten ist ein Screenshot, der die verfügbaren Funktionen oder Privilegien darstellt, die ein Benutzer, der der Rolle angehört, tun kann:

Admin-Rolle

Benutzerrolle

Die Admin-Rolle hat viel mehr Privilegien, während die Benutzerrolle einige eingeschränkte Privilegien hat. Diese Standardrollen können gemäß Ihrer gewünschten Konfiguration geändert werden. Durch das Hinzufügen einer Rolle können Sie auch beginnen und festlegen, welche Rollen zulässig sind oder nicht. Beispielsweise erstellen wir eine neue Rolle. Um eine Rolle zu erstellen, klicken Sie einfach auf die Plus-Schaltfläche „+“ neben den Rollen. Sie können die neue Rolle namens Viewer sehen, die wir erstellt haben.

Alle Häkchen sind deaktiviert. Aktivieren Sie einfach die Spalte „Zulassen“, um die Funktion oder das Privileg zu aktivieren, oder aktivieren Sie die Spalte „Verweigern“, wenn Sie den Zugriff verweigern möchten. Die Spalte „Verwalten“ ermöglicht es den Benutzern in dieser Rolle, Verwaltungsaufgaben auszuführen. In der Spalte „Ändern“ hingegen können Sie Änderungen aktivieren, die nur für Berechtigungen oder Funktionen unter „Alarme“, „Jobs“ und „Einstellungen“ verfügbar sind.

RBAC testen

In diesem Beispiel sind die folgenden Cluster in meinem Controller vorhanden, wie unten gezeigt:

Dies kann vom Superadministratorkonto in dieser Umgebung angezeigt werden.

Jetzt, da wir RBAC für den gerade erstellten Benutzer eingerichtet haben, versuchen wir, uns mit der E-Mail-Adresse und dem Passwort anzumelden, die wir gerade eingerichtet haben.

Das wird erstellt,

Keine Cluster sind verfügbar und sichtbar, und einige Privilegien werden verweigert, wie unten gezeigt, wie z. B. Schlüsselverwaltungseinstellungen und E-Mail-Benachrichtigungen:

RBAC anpassen

Da die Rechte in den Rollen veränderbar sind, lassen sie sich einfach über User Management ➝ Access Control verwalten.

Erlauben wir nun dem erstellten Benutzer, einen Cluster anzuzeigen. Da unserem Benutzer der Zugriff auf alle Cluster verweigert wurde, müssen wir ihn aktivieren. Siehe unten,

Wie wir bereits anhand des Diagramms festgestellt haben, werden Cluster vom Team gesteuert. Beispielsweise gibt es die folgenden Clusterzuweisungen unten:

Da wir den Cluster dem richtigen Team zuweisen müssen, wird durch Auswählen des spezifischen Clusters und Klicken auf die Schaltfläche "Team ändern" die Eingabeaufforderung angezeigt, mit der Sie ihn dem richtigen Team neu zuweisen können.

P>

Lassen Sie uns es jetzt DevOps zuweisen.

Jetzt melden Sie sich wieder als neu erstellter Benutzer an und wir können den Cluster sehen.

Zusammenfassung

Role-Based Access Control (RBAC) in ClusterControl ist eine Funktion, die eine feinkörnige restriktive Zugriffssteuerung für jeden Benutzer bietet, den Sie in ClusterControl erstellt haben, wodurch mehr Sicherheit und eine restriktivere Zugriffssteuerung basierend auf a Rolle des Benutzers.