Mit der optionalen Komponente Apache Ranger können Sie Berechtigungen und Prüfungen für die Hadoop-Verwaltungsplattform in Managed Service for Apache Spark-Clustern verwalten. Wenn Sie diese Komponente während der Clustererstellung installieren, sind der Ranger-admin-Server und die Web-UI auf dem ersten Masterknoten des Clusters an Port 6080 verfügbar.
Weitere Informationen zu verwandten Aufgaben und Anleitungen finden Sie unter Ranger mit Kerberos verwenden, Ranger-Schema sichern und wiederherstellen und Best Practices für die Verwendung von Apache Ranger in Managed Service for Apache Spark.
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 Version 1.3 und höher von Managed Service for Apache Spark erstellt wurden. Für die Ranger-Komponente muss die Solr-Komponente installiert werden.
Informationen zu den Komponentenversionen, die in den einzelnen Managed Service for Apache Spark-Image-Releases enthalten sind, finden Sie unter Unterstützte Managed Service for Apache Spark-Versionen.
Installationsschritte:
Richten Sie Ihr Ranger-
admin-Passwort ein:- Weisen Sie dem Dienstkonto des Clusters die Rolle Cloud Key Management Service CryptoKey-Verschlüsseler/Entschlüsseler zu. Standardmäßig wird das Clusterdienstkonto als Compute Engine-Standarddienstkonto festgelegt, das folgende Form hat:
Sie können beim Erstellen des Clusters ein anderes Clusterdienstkonto angeben.project-number-compute@
- 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@ \ --role=roles/cloudkms.cryptoKeyDecrypter
- Beispiel: Weisen Sie dem Compute Engine-Standarddienstkonto die Rolle "Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler" zu:
- Verschlüsseln Sie Ihr Ranger-
admin-Passwort mit einem Key Management Service (KMS)-Schlüssel. Bei Clustern mit Image-Versionen 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.- Beispiel:
- Schlüsselbund erstellen:
gcloud kms keyrings create my-keyring --location=global
- Erstellen Sie den Schlüssel:
gcloud kms keys create my-key \ --location=global \ --keyring=my-keyring \ --purpose=encryption
- Verschlüsseln Sie das Passwort des Ranger-Nutzers
admin:echo 'my-ranger-admin-password' | \ gcloud kms encrypt \ --location=global \ --keyring=my-keyring \ --key=my-key \ --plaintext-file=- \ --ciphertext-file=admin-password.encrypted
- Schlüsselbund erstellen:
- Beispiel:
- Laden Sie das verschlüsselte Passwort in einen Cloud Storage-Bucket in Ihrem Projekt hoch.
- Beispiel:
gcloud storage cp admin-password.encrypted gs://my-bucket
- Beispiel:
- Weisen Sie dem Dienstkonto des Clusters die Rolle Cloud Key Management Service CryptoKey-Verschlüsseler/Entschlüsseler zu. Standardmäßig wird das Clusterdienstkonto als Compute Engine-Standarddienstkonto festgelegt, das folgende Form hat:
Cluster erstellen
- Wenn Sie die Ranger-Komponente installieren, muss auch die Solr-Komponente installiert werden.
- 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.
- 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
- Ü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.uriunddataproc:ranger.admin.password.urifestlegen. - Optional können Sie das Passwort des Ranger-Datenbanknutzers
adminüber einen verschlüsselten Cloud Storage-Datei-URI übergeben, indem Sie die Clustereigenschaftdataproc:ranger.db.admin.password.urifestlegen. Standardmäßig verwendet die Ranger-Komponente die MySql-Datenbankinstanz, die auf dem ersten Masterknoten 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:
- Vor der Clustererstellung müssen Sie die Cloud SQL-Instanz konfigurieren, um das Datenbank-Flag
log_bin_trust_function_creatorszu aktivieren, indem Sie es aufonsetzen. Dadurch können die Ranger-Schema-Setupscripts während der Clustererstellung ausgeführt werden. Nachdem der Cluster erfolgreich erstellt wurde, können Sie dieses Flag aufoffzurücksetzen. - Legen Sie das Clusterattribut
dataproc:ranger.cloud-sql.instance.connection.nameauf die Cloud SQL-Instanz fest. - Legen Sie das Clusterattribut
dataproc:ranger.cloud-sql.root.password.uriauf den Cloud Storage-URI des mit dem KMS-Schlüssel verschlüsselten Root-Passworts der Cloud SQL-Instanz fest. - Legen Sie das Clusterattribut
dataproc:ranger.cloud-sql.use-private-ipfest, 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 über den Cloud SQL Auth-Proxy eine Verbindung zur Cloud SQL-Instanz her. So verwenden Sie den Proxy:
- Legen Sie den
sqlservice.admin-API-Bereich beim Erstellen des Clusters fest (siehe Anfragen mit OAuth 2.0 autorisieren). Fügen Sie bei Verwendung desgcloud dataproc cluster create-Befehls den--scopes=default,sql-admin-Parameter hinzu. - Aktivieren Sie in Ihrem Projekt die SQL Admin API.
- Das Cluster-Dienstkonto muss die Rolle Cloud SQL-Bearbeiter haben.
- 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.
- Vor der Clustererstellung müssen Sie die Cloud SQL-Instanz konfigurieren, um das Datenbank-Flag
Google Cloud Console
- Öffnen Sie in der Google Cloud Console die Seite Cluster erstellen.
- Klicken Sie auf Zusätzliche Konfiguration, um den Bereich zu maximieren.
- Bearbeiten Sie Optionale Komponenten.
- Klicken Sie im daraufhin geöffneten Bereich die Kästchen für Ranger und Solr an 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 Dataproc API-Anfrage clusters.create an. Außerdem müssen Sie die folgenden Cluster-Attribute im Feld SoftwareConfig.Component.properties festlegen:
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"
- Wenn Sie die Ranger-Komponente installieren, muss auch die Solr-Komponente installiert werden.
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 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.