Tutorial: Konfigurieren von Apache HBase-Richtlinien in HDInsight mit dem Enterprise-Sicherheitspaket

Hier erfahren Sie, wie Sie Apache Ranger-Richtlinien für Apache HBase-Cluster mit dem Enterprise-Sicherheitspaket (ESP) konfigurieren. Es werden Verbindungen von ESP-Clustern mit einer Domäne hergestellt, sodass Benutzer sich mit Anmeldeinformationen für die Domäne authentifizieren können. In diesem Tutorial erstellen Sie zwei Ranger-Richtlinien, um den Zugriff auf verschiedene Spaltenfamilien in einer HBase-Tabelle einzuschränken.

In diesem Tutorial lernen Sie Folgendes:

  • Erstellen Sie Domänenbenutzer.
  • Erstellen Sie Ranger-Richtlinien.
  • Erstellen Sie Tabellen in einem HBase-Cluster.
  • Testen Sie Ranger-Richtlinien.

Voraussetzungen

Herstellen einer Verbindung mit der Apache Ranger-Administratoroberfläche

  1. Stellen Sie in einem Browser mit der URL https://<ClusterName>.azurehdinsight.net/Ranger/ eine Verbindung mit der Ranger-Administrator-Benutzeroberfläche (UI) her. Vergessen Sie nicht, <ClusterName> in den Namen Ihres HBase-Clusters zu ändern.

    Hinweis

    Die Ranger-Anmeldeinformationen sind nicht identisch mit Hadoop-Clusteranmeldeinformationen. Stellen Sie die Verbindung mit der Ranger-Administratoroberfläche in einem neuen InPrivate-Browserfenster her, um zu verhindern, dass der Browser zwischengespeicherte Hadoop-Anmeldeinformationen verwendet.

  2. Melden Sie sich mit Ihren Microsoft Entra-Administratoranmeldeinformationen an. Die Microsoft Entra-Administratoranmeldeinformationen sind nicht identisch mit HDInsight-Clusteranmeldeinformationen oder Linux-HDInsight-Knoten-Secure Shell-Anmeldeinformationen.

Erstellen von Domänenbenutzern

Informationen zum Erstellen der Domänenbenutzer sales_user1 und marketing_user1 finden Sie unter Konfigurieren eines HDInsight-Clusters mit dem Enterprise-Sicherheitspaket. In einem Produktionsszenario stammen Domänenbenutzer aus Ihrem Active Directory-Mandanten.

Erstellen von HBase-Tabellen und Importieren von Beispieldaten

Sie können SSH verwenden, um eine Verbindung mit Apache HBase-Clustern herzustellen, und dann mithilfe von Apache HBase Shell HBase-Tabellen erstellen, Daten einfügen und Daten abfragen. Weitere Informationen finden Sie unter Verwenden von SSH mit Linux-basiertem Hadoop in HDInsight unter Linux, Unix oder OS X.

Verwenden der HBase-Shell

  1. Führen Sie unter SSH den folgenden HBase-Befehl aus:

    hbase shell
    
  2. Erstellen Sie eine HBase-Tabelle namens Customers mit zwei Spaltenfamilien: Name und Contact.

    create 'Customers', 'Name', 'Contact'
    list
    
  3. Fügen Sie Daten ein:

    put 'Customers','1001','Name:First','Alice'
    put 'Customers','1001','Name:Last','Johnson'
    put 'Customers','1001','Contact:Phone','333-333-3333'
    put 'Customers','1001','Contact:Address','313 133rd Place'
    put 'Customers','1001','Contact:City','Redmond'
    put 'Customers','1001','Contact:State','WA'
    put 'Customers','1001','Contact:ZipCode','98052'
    put 'Customers','1002','Name:First','Robert'
    put 'Customers','1002','Name:Last','Stevens'
    put 'Customers','1002','Contact:Phone','777-777-7777'
    put 'Customers','1002','Contact:Address','717 177th Ave'
    put 'Customers','1002','Contact:City','Bellevue'
    put 'Customers','1002','Contact:State','WA'
    put 'Customers','1002','Contact:ZipCode','98008'
    
  4. Zeigen Sie den Inhalt der Tabelle an:

    scan 'Customers'
    

    Screenshot that shows the HDInsight Hadoop HBase shell output.

Erstellen von Ranger-Richtlinien

Erstellen Sie eine Ranger-Richtlinie für sales_user1 und marketing_user1.

  1. Öffnen Sie die Ranger-Administratoroberfläche. Klicken Sie unter HBase auf <Clustername>_hbase.

    Screenshot that shows the HDInsight Apache Ranger Admin UI.

  2. In der Anzeige Liste der Richtlinien werden alle Ranger-Richtlinien angezeigt, die für diesen Cluster erstellt wurden. Möglicherweise wird eine vorkonfigurierte Richtlinie aufgelistet. Wählen Sie Neue Richtlinie hinzufügen aus.

    Screenshot that shows the Apache Ranger HBase policies list.

  3. Geben Sie auf der Seite Richtlinie erstellen die folgenden Werte ein:

    Einstellung Vorgeschlagener Wert
    Richtlinienname sales_customers_name_contact
    HBase-Tabelle Kunden
    HBase-Spaltenfamilie Name, Kontakt
    HBase-Spalte *
    Gruppe auswählen
    Benutzer auswählen sales_user1
    Berechtigungen Lesen

    Die folgenden Platzhalter können im Themennamen enthalten sein:

    • * weist auf null oder mehr Vorkommen von Zeichen hin.
    • ? weist auf ein einzelnes Zeichen hin.

    Screenshot that shows the Apache Ranger policy Create sales.

    Hinweis

    Warten Sie kurz, bis Ranger mit Microsoft Entra ID synchronisiert ist, wenn unter Benutzer auswählen nicht automatisch ein Domänenbenutzer eingetragen wird.

  4. Wählen Sie Hinzufügen aus, um die Richtlinie zu speichern.

  5. Wählen Sie Neue Richtlinie hinzufügen aus, und geben Sie die folgenden Werte ein:

    Einstellung Vorgeschlagener Wert
    Richtlinienname marketing_customers_contact
    HBase-Tabelle Kunden
    HBase-Spaltenfamilie Kontakt
    HBase-Spalte *
    Gruppe auswählen
    Benutzer auswählen marketing_user1
    Berechtigungen Lesen Sie

    Screenshot that shows the Apache Ranger policy Create marketing.

  6. Wählen Sie Hinzufügen aus, um die Richtlinie zu speichern.

Testen der Ranger-Richtlinien

Basierend auf den konfigurierten Ranger-Richtlinien kann sales_user1 alle Daten für die Spalten in den Spaltenfamilien Name und Contact anzeigen. Der Benutzer marketing_user1 kann nur Daten in der Spaltenfamilie Contact anzeigen.

Zugreifen auf Daten als „sales_user1“

  1. Stellen Sie eine neue SSH-Verbindung mit dem Cluster her. Verwenden Sie den folgenden Befehl, um sich bei dem Cluster anzumelden:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Verwenden Sie den kinit-Befehl, um zum Kontext des gewünschten Benutzers zu wechseln:

    kinit sales_user1
    
  3. Öffnen Sie die HBase-Shell, und sehen Sie sich die Tabelle Customers an:

    hbase shell
    scan `Customers`
    
  4. Beachten Sie, dass der Vertriebsbenutzer alle Spalten der Tabelle Customers anzeigen kann. Der Benutzer kann die beiden Spalten in der Spaltenfamilie Name und die fünf Spalten in der Spaltenfamilie Contact sehen.

    ROW                                COLUMN+CELL
     1001                              column=Contact:Address, timestamp=1548894873820, value=313 133rd Place
     1001                              column=Contact:City, timestamp=1548895061523, value=Redmond
     1001                              column=Contact:Phone, timestamp=1548894871759, value=333-333-3333
     1001                              column=Contact:State, timestamp=1548895061613, value=WA
     1001                              column=Contact:ZipCode, timestamp=1548895063111, value=98052
     1001                              column=Name:First, timestamp=1548894871561, value=Alice
     1001                              column=Name:Last, timestamp=1548894871707, value=Johnson
     1002                              column=Contact:Address, timestamp=1548894899174, value=717 177th Ave
     1002                              column=Contact:City, timestamp=1548895103129, value=Bellevue
     1002                              column=Contact:Phone, timestamp=1548894897524, value=777-777-7777
     1002                              column=Contact:State, timestamp=1548895103231, value=WA
     1002                              column=Contact:ZipCode, timestamp=1548895104804, value=98008
     1002                              column=Name:First, timestamp=1548894897419, value=Robert
     1002                              column=Name:Last, timestamp=1548894897487, value=Stevens
    2 row(s) in 0.1000 seconds
    

Zugreifen auf Daten als „marketing_user1“

  1. Stellen Sie eine neue SSH-Verbindung mit dem Cluster her. Führen Sie den folgenden Befehl aus, um sich als marketing_user1 anzumelden:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Verwenden Sie den kinit-Befehl, um zum Kontext des gewünschten Benutzers zu wechseln:

    kinit marketing_user1
    
  3. Öffnen Sie die HBase-Shell, und sehen Sie sich die Tabelle Customers an:

    hbase shell
    scan `Customers`
    
  4. Beachten Sie, dass der Marketingbenutzer nur die fünf Spalten der Spaltenfamilie Contact anzeigen kann.

    ROW                                COLUMN+CELL
     1001                              column=Contact:Address, timestamp=1548894873820, value=313 133rd Place
     1001                              column=Contact:City, timestamp=1548895061523, value=Redmond
     1001                              column=Contact:Phone, timestamp=1548894871759, value=333-333-3333
     1001                              column=Contact:State, timestamp=1548895061613, value=WA
     1001                              column=Contact:ZipCode, timestamp=1548895063111, value=98052
     1002                              column=Contact:Address, timestamp=1548894899174, value=717 177th Ave
     1002                              column=Contact:City, timestamp=1548895103129, value=Bellevue
     1002                              column=Contact:Phone, timestamp=1548894897524, value=777-777-7777
     1002                              column=Contact:State, timestamp=1548895103231, value=WA
     1002                              column=Contact:ZipCode, timestamp=1548895104804, value=98008
    2 row(s) in 0.0730 seconds
    
  5. Zeigen Sie die Überwachungszugriffsereignisse in der Ranger-Benutzeroberfläche an.

    Screenshot that shows the HDInsight Ranger UI Policy Audit.

Bereinigen von Ressourcen

Wenn Sie diese Anwendung nicht mehr benötigen, löschen Sie das erstellte HBase-Cluster, das Sie erstellt haben:

  1. Melden Sie sich beim Azure-Portal an.
  2. Geben Sie oben im Feld Suchen den Suchbegriff HDInsight ein.
  3. Wählen Sie unter Dienste die Option HDInsight-Cluster aus.
  4. Klicken Sie in der daraufhin angezeigten Liste mit den HDInsight-Clustern neben dem Cluster, den Sie für dieses Tutorial erstellt haben, auf die Auslassungspunkte ( ... ).
  5. Wählen Sie Löschen>Ja.

Nächste Schritte