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-Cluster die Cloud KMS CryptoKey Verschlüsseler/Entschlüsseler-Rolle zu. Standardmäßig wird das Clusterdienstkonto als Compute Engine-Standarddienstkonto festgelegt, das folgende Form hat:
      project-number-compute@developer.gserviceaccount.com
      
      Beim Erstellen des Clusters können Sie ein anderes Cluster-Dienstkonto angeben.
      1. Beispiel: Weisen Sie dem Compute Engine-Standarddienstkonto die Rolle "Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler" 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 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. Erstellen Sie den Schlüsselbund:
          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. So verschlüsseln Sie das Ranger-Administratorpasswort:
          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. Wenn Sie die Ranger-Komponente installieren, muss auch die Solr-Komponente installiert werden (siehe unten).
      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. Aktivieren Sie in der MySQL-Instanz das Flag log_bin_trust_function_creators, indem Sie die Variable auf ON festlegen. Dieses Flag legt fest, ob gespeicherte Funktionsersteller vertrauenswürdig sind. Nach erfolgreicher Clustererstellung und Ranger-Konfiguration können Sie log_bin_trust_function_creators auf OFF zurücksetzen.
    5. 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 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.

      gcloud-Befehl

      Verwenden Sie zum Erstellen eines Dataproc-Clusters, der die Ranger-Komponente enthält, 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 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

      1. Aktivieren Sie das Komponenten- und Komponentengateway.
        • Öffnen Sie in der Google Cloud Console die Dataproc-Seite Cluster erstellen. Der Bereich „Cluster einrichten“ ist ausgewählt.
        • Im Abschnitt „Komponenten“:
          • Wählen Sie unter „Optionale Komponenten“ Ranger, Solr und andere optionale Komponenten aus, die auf Ihrem Cluster installiert werden sollen.
          • Wählen Sie unter Component Gateway „Component Gateway aktivieren“ aus (siehe Component Gateway-URLs ansehen und aufrufen).

Klicken Sie auf den Tab Weboberflächen. Klicken Sie unter Komponenten-Gateway auf Ranger, um die Ranger-Weboberfläche zu öffnen. Melden Sie sich mit dem Ranger-Nutzernamen von Ranger (z. B. "admin") und dem Passwort an.

Ranger-Administrator-Logs

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