Optionale Ranger-Komponente in Dataproc

Sie können zusätzliche Komponenten wie Ranger 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.

Weitere Informationen

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
      
      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-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). Bei Clustern mit einer Imageversion vor 2.2 muss das Passwort aus mindestens acht Zeichen bestehen, darunter mindestens ein alphabetisches und ein numerisches Zeichen. Bei Clustern mit der Bildversion 2.2 und höher muss das Passwort aus mindestens acht Zeichen bestehen, darunter mindestens ein Großbuchstabe, ein Kleinbuchstabe und eine Ziffer.
      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:
        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 (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. Aktivieren Sie in der MySQL-Instanz das Flag log_bin_trust_function_creators, indem Sie die Variable auf ON setzen. Mit diesem Flag wird festgelegt, ob die Ersteller gespeicherter Funktionen vertrauenswürdig sind. Nachdem der Cluster erstellt und Ranger konfiguriert wurde, 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 die Komponente und das Komponentengateway.
        • Öffnen Sie in der Google Cloud Console die Dataproc-Seite Cluster erstellen. Der Bereich „Cluster einrichten“ ist ausgewählt.
        • Im Bereich 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 Component Gateway auf Ranger, um die Ranger-Weboberfläche zu öffnen. Melden Sie sich mit dem Nutzernamen (z. B. „admin“) und dem Passwort des Ranger-Administrators an.

Ranger-Administrator-Logs

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