Dataproc Ranger Component

Sie können zusätzliche Komponenten installieren, wenn Sie einen Dataproc-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-Administratorserver und die Web-UI sind über Port 6080 auf dem ersten Masterknoten des Clusters verfügbar.

Komponente installieren

Installieren Sie die Komponente, wenn Sie einen Dataproc-Cluster erstellen. Sie können Komponenten in Cluster einfügen, die mit Dataproc Version 1.3 oder höher erstellt wurden. Die Ranger-Komponente erfordert die Installation der Solr-Komponente (wie unten gezeigt).

Informationen zu den Komponentenversionen, die im jeweiligen Dataproc-Image-Release enthalten sind, finden Sie im Abschnitt Unterstützte Dataproc-Versionen.

Installationsschritte:

  1. Ranger-Administratorpasswort einrichten:

    1. Weisen Sie dem Dienstkonto des Clusters die Rolle Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler zu (siehe Einem Dienstkonto Rollen für bestimmte Ressourcen zuweisen). Dieses Konto hat das folgende Format:
      project-number-compute@developer.gserviceaccount.com
      
      1. Beispiel:
        gcloud projects add-iam-policy-binding project-id \
            --member=serviceAccount:service-project-number-compute@developer.gserviceaccount.com \
            --role=roles/cloudkms.cryptoKeyDecrypter
        
    2. Verschlüsseln Sie das Passwort Ihres Administrators mit einem KMS-Schlüssel (Key Management Service, Schlüsselverwaltungsdienst). Ihr Passwort muss aus mindestens acht Zeichen und mindestens einem alphabetischen und einem numerischen Zeichen bestehen.
      1. Beispiel:
        1. Schlüsselbund erstellen:
          gcloud kms keyrings create my-keyring --location=global
          
        2. Schlüssel erstellen:
          gcloud kms keys create my-key \
              --location=global \
              --keyring=my-keyring \
              --purpose=encryption
          
        3. Verschlüsseln Sie das Passwort für Ihren Ranger-Administrator:
          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:
        gsutil cp admin-password.encrypted gs://my-bucket
        
  2. Cluster erstellen

    1. Bei der Installation der Ranger-Komponente muss auch die Solr-Komponente installiert werden (wie unten gezeigt).
      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 Administratorpasswort der Ranger-Datenbank über einen verschlüsselten Cloud Storage-URI übergeben, indem Sie das Clusterattribut dataproc:ranger.db.admin.password.uri festlegen.
    4. Standardmäßig verwendet die Ranger-Komponente die MySql-Datenbankinstanz, die auf dem ersten Masterknoten des Clusters ausgeführt wird. Verwenden Sie eine Cloud SQL-Instanz als externe MySql-Datenbank, um die Ranger-Datenbank nach der Clusterlöschung zu speichern.

      1. Legen Sie das Clusterattribut dataproc:ranger.cloud-sql.instance.connection.name auf die Cloud SQL-Instanz fest.
      2. 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.
      3. 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.

      Die Ranger-Komponente verwendet den Cloud SQL-Proxy, um eine Verbindung zur Cloud SQL-Instanz herzustellen. So verwenden Sie den Proxy:

      1. Legen Sie beim Erstellen des Clusters den API-Bereich sqlservice.admin fest. Wenn Sie den Befehl gcloud dataproc cluster create verwenden, fügen Sie den Parameter --scopes=default,sql-admin hinzu.
      2. Aktivieren Sie in Ihrem Projekt die SQL Admin API.
      3. Weisen Sie dem Compute Engine-Standarddienstkonto in Ihrem Projekt die Rolle Cloud SQL-Bearbeiter zu.

      gcloud-Befehl

      Verwenden Sie zum Erstellen eines Dataproc-Clusters, der die Ranger-Komponente enthält, den Befehl gcloud beta dataproc clusters create cluster-name mit dem Flag --optional-components.

      gcloud beta 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 Komponenten Ranger und Solr im Feld SoftwareConfig.Component als Teil einer clusters.create-Anfrage 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"

      Console

      Die Installation der Ranger-Komponente aus der Cloud Console wird derzeit nicht unterstützt.

Ranger-Administrator-Logs

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