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-admin-Server 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.

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

Installationsschritte:

  1. Ranger-admin-Passwort einrichten:

    1. Weisen Sie dem Cluster Dienstkonto die Rolle „Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler“ zu. Standardmäßig wird das Clusterdienst konto als das 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 Ranger-admin Passwort mit einem Schlüsselverwaltungsdienst (KMS) Schlüssel. Bei Clustern mit Image-Versionen vor 2.2 muss das Passwort aus mindestens acht Zeichen und mindestens einem alphabetischen und einem numerischen Zeichen bestehen. Bei Clustern mit Image-Version 2.2 und höher muss das Passwort aus mindestens acht Zeichen und mindestens einem Großbuchstaben, einem Kleinbuchstaben 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-admin-Nutzer:
          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 dataproc:ranger.kms.key.uri und dataproc:ranger.admin.password.uri Clusterattribute festlegen.
    3. Optional können Sie das admin Nutzerpasswort über einen verschlüsselten Cloud Storage-URI übergeben, indem Sie das dataproc:ranger.db.admin.password.uri Clusterattribut 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 dieser Einstellung wird festgelegt, ob Erstellern gespeicherter Funktionen vertraut werden kann. Nachdem Sie den Cluster erstellt und Ranger konfiguriert haben, können Sie log_bin_trust_function_creators wieder auf OFF setzen.
    5. Verwenden Sie eine Cloud SQL-Instanz als die 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 dataproc:ranger.cloud-sql.use-private-ip Clusterattribut fest, um anzugeben, ob die Verbindung zur Cloud SQL-Instanz über eine private IP-Adresse erfolgt.

      Die Ranger-Komponente verwendet den Cloud SQL Auth-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.
      4. Da der Cloud SQL Auth-Proxy auf dem Masterknoten ausgehende Verbindungen zur Cloud SQL-Instanz über Port 3307 herstellt, müssen ausgehende TCP-Verbindungen vom Masterknoten zur Cloud SQL-Instanz über Port 3307 zulässig sein. Weitere Informationen finden Sie unter Funktionsweise des Cloud SQL Auth-Proxys.

      gcloud CLI

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

      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 Webschnittstellen. Klicken Sie unter Component Gateway auf Ranger, um die Ranger-Webschnittstelle 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.