Optionale Ranger-Komponente für Managed Service for Apache Spark

Sie können zusätzliche Komponenten wie Ranger installieren, wenn Sie einen Managed Service for Apache Spark-Cluster mit dem Feature Optionale Komponenten erstellen. Auf dieser Seite wird die Ranger-Komponente beschrieben.

Die Apache Ranger-Komponente ist ein Open-Source-Framework zur Verwaltung von Berechtigungen und Prüfungen für die Hadoop-Verwaltungsplattform. Der Ranger-Server admin und die Web-UI sind an Port 6080 auf dem ersten Masterknoten des Clusters verfügbar.

Siehe auch:

Komponente installieren

Installieren Sie die Komponente, wenn Sie einen Managed Service for Apache Spark-Cluster erstellen. Komponenten können Clustern hinzugefügt werden, die mit Managed Service for Apache Spark Version 1.3 und höher erstellt wurden. Für die Ranger-Komponente muss die Solr-Komponente installiert sein.

Informationen zur in den einzelnen Managed Service for Apache Spark-Image-Releases enthaltenen Komponentenversion finden Sie unter Unterstützte Managed Service for Apache Spark-Versionen.

Installationsschritte:

  1. Ranger-Passwort für admin einrichten:

    1. Weisen Sie dem Dienstkonto des Clusters die Cloud Key Management Service CryptoKey Encrypter/Decrypter-Rolle zu. Standardmäßig ist das Cluster-Dienstkonto das Compute Engine-Standarddienstkonto mit folgendem Format:
      project-number-compute@developer.gserviceaccount.com
      
      Sie können beim Erstellen des Clusters ein anderes Cluster-Dienstkonto angeben.
      1. Beispiel:Weisen Sie dem Compute Engine-Standarddienstkonto die Rolle „Cloud KMS CryptoKey Encrypter/Decrypter“ zu:
        gcloud projects add-iam-policy-binding project-id \
            --member=serviceAccount:project-number-compute@developer.gserviceaccount.com \
            --role=roles/cloudkms.cryptoKeyDecrypter
        
    2. Verschlüsseln Sie das Ranger admin-Passwort mit einem Key Management Service (KMS)-Schlüssel. Bei Clustern mit einer Bildversion vor 2.2 muss das Passwort mindestens 8 Zeichen lang sein und mindestens ein alphabetisches und ein numerisches Zeichen enthalten. Bei Clustern mit Image-Version 2.2 und höher muss das Passwort mindestens 8 Zeichen lang sein und mindestens einen Großbuchstaben, einen Kleinbuchstaben und eine Ziffer enthalten.
      1. Beispiel:
        1. Schlüsselbund erstellen:
          gcloud kms keyrings create my-keyring --location=global
          
        2. Erstellen Sie den Schlüssel:
          gcloud kms keys create my-key \
              --location=global \
              --keyring=my-keyring \
              --purpose=encryption
          
        3. Verschlüsseln Sie das Passwort für den Ranger-Nutzer admin:
          echo 'my-ranger-admin-password' | \
            gcloud kms encrypt \
              --location=global \
              --keyring=my-keyring \
              --key=my-key \
              --plaintext-file=- \
              --ciphertext-file=admin-password.encrypted
          
    3. Laden Sie das verschlüsselte Passwort in einen Cloud Storage-Bucket in Ihrem Projekt hoch.
      1. Beispiel:
        gcloud storage cp admin-password.encrypted gs://my-bucket
        
  2. Cluster erstellen

    1. Bei der Installation der Ranger-Komponente muss auch die Solr-Komponente installiert werden.
      1. Die Ranger-Komponente benötigt die Solr-Komponente, um ihre Audit-Logs zu speichern und abzufragen, die standardmäßig HDFS als Speicher verwenden. Diese HDFS-Daten werden gelöscht, wenn der Cluster gelöscht wird. Wenn Sie die Solr-Komponente so konfigurieren möchten, dass Daten, einschließlich der Ranger-Audit-Logs, in Cloud Storage gespeichert werden, verwenden Sie beim Erstellen des Clusters das Clusterattribut dataproc:solr.gcs.path=gs://<bucket>. Cloud Storage-Daten bleiben nach dem Löschen des Clusters erhalten.
    2. Übergeben Sie die Cloud Storage-URIs für den KMS-Schlüssel und das Passwort an den Befehl zur Clustererstellung, indem Sie die Clusterattribute dataproc:ranger.kms.key.uri und dataproc:ranger.admin.password.uri festlegen.
    3. Optional können Sie das admin-Nutzerpasswort der Ranger-Datenbank über einen verschlüsselten Cloud Storage-Datei-URI übergeben, indem Sie die dataproc:ranger.db.admin.password.uri-Clustereigenschaft festlegen.
    4. Standardmäßig verwendet die Ranger-Komponente die MySQL-Datenbankinstanz, die auf dem ersten Masternode des Clusters ausgeführt wird. Wenn Sie die Ranger-Datenbank nach dem Löschen des Clusters beibehalten möchten, können Sie den Cluster so konfigurieren, dass er eine externe Cloud SQL-Instanz verwendet. So verwenden Sie eine externe Cloud SQL-Instanz:

      1. Vor dem Erstellen des Clusters müssen Sie die Cloud SQL-Instanz konfigurieren, um das Datenbank-Flag log_bin_trust_function_creators zu aktivieren, indem Sie es auf on setzen. So können die Ranger-Schema-Einrichtungsskripts während der Clustererstellung ausgeführt werden. Nachdem der Cluster erfolgreich erstellt wurde, können Sie dieses Flag auf off zurücksetzen.
      2. Legen Sie das Clusterattribut dataproc:ranger.cloud-sql.instance.connection.name auf die Cloud SQL-Instanz fest.
      3. Legen Sie das Clusterattribut dataproc:ranger.cloud-sql.root.password.uri auf den Cloud Storage-URI des mit dem KMS-Schlüssel verschlüsselten Root-Passworts der Cloud SQL-Instanz fest.
      4. Legen Sie das Clusterattribut dataproc:ranger.cloud-sql.use-private-ip fest, um anzugeben, ob die Verbindung zur Cloud SQL-Instanz über eine private IP-Adresse erfolgt.

      Wenn Sie eine externe Cloud SQL-Instanz verwenden, stellt die Ranger-Komponente mit dem Cloud SQL Auth-Proxy eine Verbindung zur Cloud SQL-Instanz her. So verwenden Sie den Proxy:

      1. Legen Sie den sqlservice.admin-API-Bereich beim Erstellen des Clusters fest (siehe Anfragen mit OAuth 2.0 autorisieren). Fügen Sie bei Verwendung des gcloud dataproc cluster create-Befehls den --scopes=default,sql-admin-Parameter hinzu.
      2. Aktivieren Sie in Ihrem Projekt die SQL Admin API.
      3. Das Cluster-Dienstkonto muss die Rolle Cloud SQL-Bearbeiter haben.
      4. Da der Cloud SQL Auth-Proxy auf dem Masterknoten ausgehende Verbindungen zur Cloud SQL-Instanz über Port 3307 herstellt, müssen Sie dafür sorgen, dass ausgehende TCP-Verbindungen vom Masterknoten zur Cloud SQL-Instanz über Port 3307 zulässig sind. Weitere Informationen finden Sie unter Funktionsweise des Cloud SQL Auth-Proxys.

    Google Cloud Console

    1. Öffnen Sie in der Google Cloud Console die Seite Cluster erstellen.
    2. Klicken Sie auf Zusätzliche Konfiguration, um den Bereich zu maximieren.
    3. Bearbeiten Sie Optionale Komponenten.
    4. Wählen Sie im angezeigten Bereich die Kästchen für Ranger und Solr aus und klicken Sie dann auf Speichern.

    gcloud-CLI

    Wenn Sie einen Managed Service for Apache Spark-Cluster erstellen möchten, der die Ranger-Komponente enthält, verwenden Sie den Befehl gcloud dataproc clusters create cluster-name mit dem Flag --optional-components.

    gcloud dataproc clusters create cluster-name \
        --optional-components=SOLR,RANGER \
        --region=region \
        --enable-component-gateway \
        --properties="dataproc:ranger.kms.key.uri=projects/project-id/locations/global/keyRings/my-keyring/cryptoKeys/my-key,dataproc:ranger.admin.password.uri=gs://my-bucket/admin-password.encrypted" \
        ... other flags
    

    REST API

    Geben Sie die Ranger- und Solr-Komponenten im Feld SoftwareConfig.Component als Teil einer clusters.create-Anfrage der Dataproc API an. Außerdem müssen Sie die folgenden Cluster-Attribute im Feld SoftwareConfig.Component.properties festlegen:

    1. dataproc:ranger.kms.key.uri: "projects/project-id/locations/global/keyRings/my-keyring/cryptoKeys/my-key"
    2. dataproc:ranger.admin.password.uri: „gs://my-bucket/admin-password.encrypted“

Klicken Sie auf den Tab Webschnittstellen. Klicken Sie unter Component Gateway auf Ranger, um die Ranger-Weboberfläche zu öffnen. Melden Sie sich mit dem Ranger-Administratornutzernamen (z. B. „admin“) und dem Passwort an.

Ranger-Administrator-Logs

Ranger admin-Logs sind in Logging als ranger-admin-root-Logs verfügbar.