CDP verwendet Apache Ranger für das Datensicherheitsmanagement. Wenn Sie Ranger für eine zentralisierte Sicherheitsverwaltung verwenden möchten, müssen HBase-ACLs in Richtlinien migriert werden. Dies kann über die Ranger-WebUI erfolgen, auf die über Cloudera Manager zugegriffen werden kann. Aber lassen Sie uns zunächst einen kurzen Überblick über die HBase-Methode für die Zugriffskontrolle geben.
HBase-Autorisierung
Wenn die Autorisierung eingerichtet ist (zum Beispiel mit Kerberos und dem Setzen der hbase.security.authorization Eigenschaft auf true ) können Benutzer Regeln für Ressourcen definieren, auf die sie zugreifen dürfen. Diese Regeln können für einzelne Tabellen, Spalten und Zellen innerhalb einer Tabelle definiert werden.
HBase-Zugriffsebenen
HBase-Zugriffsebenen werden unabhängig voneinander gewährt und ermöglichen verschiedene Arten von Vorgängen in einem bestimmten Bereich.
Mögliche Berechtigungen (null oder mehr Buchstaben aus der Menge „RWXCA“):
- Lesen (R) – kann Daten im angegebenen Umfang lesen
- Schreiben (W) – kann Daten im angegebenen Umfang schreiben
- Execute (X) – kann Coprozessor-Endpunkte im angegebenen Bereich ausführen
- Create (C) – kann Tabellen im gegebenen Bereich erstellen oder löschen
- Admin (A) – kann Cluster-Operationen durchführen, wie z. B. das Ausbalancieren des Clusters oder das Zuweisen von Regionen im angegebenen Bereich
Mögliche Bereiche:
- Superuser – Superuser können jede in HBase verfügbare Operation für jede Ressource ausführen. Der Benutzer, der HBase auf Ihrem Cluster ausführt, ist ein Superuser. Alle Prinzipale, die der Konfigurationseigenschaft hbase.superuser zugewiesen sind in der hbase-site.xml Konfigurationsdatei auf dem HMaster sind ebenfalls Superuser.
- Global – Berechtigungen, die auf globaler Ebene gewährt werden, erlauben dem Administrator, auf allen Tabellen des Clusters zu arbeiten.
- Namespace – Berechtigungen, die im Namespace-Bereich gewährt werden, gelten für alle Tabellen innerhalb eines bestimmten Namespace.
- Tabelle – Berechtigungen, die auf Tabellenebene gewährt werden, gelten für Daten oder Metadaten innerhalb einer bestimmten Tabelle.
- ColumnFamily – Berechtigungen, die im ColumnFamily-Bereich gewährt werden, gelten für Zellen innerhalb dieser ColumnFamily.
- Zelle – Berechtigungen, die auf Zellebene gewährt werden, gelten für genau diese Zellkoordinate.
HBase-ACLs exportieren
1. Melden Sie sich über Kerberos mit den Anmeldedaten des HBase-Dienstes an.
2. Starten Sie die hbase-Shell und listen Sie ACLs auf.
Verwenden Sie zum Auflisten von ACLs die folgenden Befehle:
- user_permission ‘.*’
- Alternativ mit Superuser-Privileg:scannen Sie ‘hbase:acl’
Beispielausgabe von scan ‘hbase:acl‘:
ZEILE SPALTE+ZELLE
emp column=l:hbase, timestamp=1612190971868, value=RWXCAemp2 column=l:hbase, timestamp=1612191218963, value=RWXCAemp2 column=l:user1, timestamp=1612191426624, value=RWCemp column=l:test,personal data, timestamp=1612273141925, value=RWemp column=l:test,personal data,1, timestamp=1612273322678, value=RWemp column=l:@group-usr,personal data,1, timestamp=1612273324527, value=RWBeispielausgabe von user_permission ‘.*‘:
Benutzernamensraum,Tabelle,Familie,Qualifier:Permissionhbase default,emp,,:[Berechtigung:actions=READ,WRITE,EXEC,CREATE,ADMIN]user1 default,emp2,,:[Berechtigung:actions=READ,WRITE, CREATE]hbase default,emp2,,:[Berechtigung:actions=READ,WRITE,EXEC,CREATE,ADMIN]test default,emp,personal data,:[Berechtigung:actions=READ,WRITE]test default,emp,personal data, 1:[Berechtigung:Aktionen=LESEN,SCHREIBEN]@group-usr default,emp,persönliche Daten,1:[Berechtigung:Aktionen=LESEN,SCHREIBEN]Hinweis: Gruppen und Benutzern wird der Zugriff auf die gleiche Weise gewährt, Gruppen wird jedoch ein „@“-Zeichen vorangestellt. Tabellen und Namensräume werden auf die gleiche Weise angegeben, aber Namensräumen wird ein ‚@‘-Zeichen vorangestellt.
Beispiel für die Berechtigung auf Zellenebene:
test default,emp,persönliche Daten,1:[Berechtigung:actions=READ,WRITE]Der „Test“ Der Benutzer hat RW-Berechtigungen für ‚default‘ Namespace, auf Tabelle ’emp’ , Spalte Personenbezogene Daten und Zeile ‘1’..
Ranger-Richtlinien erstellen
- Wählen Sie im Cloudera Manager den Ranger-Dienst aus.
- Finden Sie die WebUI Link, der Sie zur Ranger-Benutzeroberfläche weiterleitet.
- Melden Sie sich bei der Ranger-Benutzeroberfläche an.
Der Zugriffsmanager angezeigte Seite:
1. Wählen Sie einen vorhandenen HBase-Dienst aus.
Die Richtlinienliste Seite erscheint.
2. Klicken Sie auf Neue Richtlinie hinzufügen .
Die Seite Richtlinie erstellen wird angezeigt.
3. Vervollständigen Sie die Seite Richtlinie erstellen wie folgt:
3.1 Richtliniendetails
Richtlinienname | Geben Sie einen geeigneten Richtliniennamen ein. Dieser Name darf nicht systemweit dupliziert werden. Dieses Feld ist obligatorisch. |
Richtlinienlabel | Geben Sie eine Bezeichnung für diese Richtlinie an. Sie können anhand dieser Labels nach Berichten suchen und Richtlinien filtern. |
normal/überschreiben | Ermöglicht es Ihnen, eine Außerkraftsetzungsrichtlinie anzugeben. Wenn Überschreiben ausgewählt ist, überschreiben die Zugriffsberechtigungen in der Richtlinie die Zugriffsberechtigungen in vorhandenen Richtlinien. Diese Funktion kann mit Gültigkeitszeitraum hinzufügen verwendet werden, um temporäre Zugriffsrichtlinien zu erstellen, die vorhandene Richtlinien außer Kraft setzen. |
HBase-Tabelle | Wählen Sie die entsprechende Datenbank aus. Für eine bestimmte Richtlinie können mehrere Datenbanken ausgewählt werden. Dieses Feld ist obligatorisch. |
HBase-Säulenfamilie | Geben Sie für die ausgewählte Tabelle die Spaltenfamilien an, für die die Richtlinie gilt. |
HBase-Spalte | Geben Sie für die ausgewählten Tabellen- und Spaltenfamilien die Spalten an, für die die Richtlinie gilt. |
Beschreibung | (Optional) Beschreiben Sie den Zweck der Richtlinie. |
Auditprotokollierung | Geben Sie an, ob diese Richtlinie überwacht wird. (Entfernen Sie die Auswahl, um die Überwachung zu deaktivieren). |
Gültigkeitszeitraum hinzufügen | Geben Sie eine Start- und Endzeit für die Richtlinie an. |
3.2 Zulassen/Ablehnen-Bedingungen
Apache Ranger unterstützt die folgenden Zugriffsbedingungen:
- Zulassen
- Vom Zulassen ausschließen
- Verweigern
- Von Verweigern ausschließen
Mit diesen Zugriffsbedingungen können Sie fein abgestufte Zugriffskontrollrichtlinien einrichten.
Beispielsweise können Sie den Zugriff auf eine Finanzen erlauben Tabelle für alle Benutzer im Bereich Finanzen Gruppe, verweigern aber allen Benutzern in Praktikanten den Zugriff Gruppe. Nehmen wir an, dass eines der Mitglieder der Praktikanten Gruppe, Scott , muss an einer Aufgabe arbeiten, die Zugriff auf die Finanzen erfordert Tisch. In diesem Fall können Sie eine Bedingung zum Ausschließen von Verweigern hinzufügen, die den Benutzer scott zulässt um auf die Finanzen zuzugreifen Datenbank.
Rolle auswählen | Geben Sie die Rollen an, für die diese Richtlinie gilt. Um eine Rolle als Administrator festzulegen, aktivieren Sie das Kontrollkästchen Delegierter Administrator. Administratoren können die Richtlinie bearbeiten oder löschen und auch untergeordnete Richtlinien basierend auf der ursprünglichen Richtlinie erstellen. |
Gruppe auswählen | Geben Sie die Gruppen an, für die diese Richtlinie gilt. Um eine Gruppe als Administrator zu bestimmen, aktivieren Sie das Kontrollkästchen Delegierter Administrator. Administratoren können die Richtlinie bearbeiten oder löschen und auch untergeordnete Richtlinien basierend auf der ursprünglichen Richtlinie erstellen. |
Benutzer auswählen | Geben Sie die Benutzer an, für die diese Richtlinie gilt. Um einen Benutzer als Administrator zu benennen, aktivieren Sie das Kontrollkästchen Administrator delegieren. Administratoren können die Richtlinie bearbeiten oder löschen und auch untergeordnete Richtlinien basierend auf der ursprünglichen Richtlinie erstellen. |
Berechtigungen | Berechtigungen hinzufügen oder bearbeiten:Lesen, Schreiben, Erstellen, Admin, Alle auswählen/abwählen. |
Administrator delegieren | Sie können Delegate Admin verwenden, um den in der Richtlinie angegebenen Benutzern oder Gruppen Administratorrechte zuzuweisen. Administratoren können die Richtlinie bearbeiten oder löschen und auch untergeordnete Richtlinien basierend auf der ursprünglichen Richtlinie erstellen. |
3.3 Sie können das Pluszeichen (+) verwenden, um zusätzliche Bedingungen hinzuzufügen. Die Bedingungen werden in der in der Richtlinie aufgeführten Reihenfolge ausgewertet. Die Bedingung ganz oben in der Liste wird zuerst angewendet, dann die zweite, dann die dritte und so weiter. Deny-Bedingungen sind immer stärker. Das folgende Flussdiagramm enthält Informationen zum Bewertungsablauf der Ranger-Richtlinie.
3.4 Klicken Sie abschließend auf Hinzufügen.
Schlussfolgerung
In diesem Blogpost haben wir uns angesehen, wie Sie Ihre HBase-ACLs mit Cloudera Manager zu Ranger-Richtlinien migrieren können. Leider gibt es keine Automatisierung für die Migration, da sich die beiden Autorisierungsmethoden stark unterscheiden. Zwar gibt es in Ranger eine Importfunktion für Massenladerichtlinien, aber es gibt keine Möglichkeit, ACLs aus HBase in dem Format zu exportieren, das Ranger versteht (speziell formatiertes JSON/CSV).