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:
Ranger-
admin-Passwort einrichten:- 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:
Beim Erstellen des Clusters können Sie ein anderes Cluster-Dienstkonto angeben.project-number-compute@developer.gserviceaccount.com
- 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
- Beispiel:Weisen Sie dem Compute Engine-Standarddienstkonto die Rolle „Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler“ zu:
- Verschlüsseln Sie das Ranger-
adminPasswort 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.- Beispiel:
- Schlüsselbund erstellen:
gcloud kms keyrings create my-keyring --location=global
- Schlüssel erstellen:
gcloud kms keys create my-key \ --location=global \ --keyring=my-keyring \ --purpose=encryption
- 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
- 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 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:
Cluster erstellen
- Bei der Installation der Ranger-Komponente 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
dataproc:ranger.kms.key.uriunddataproc:ranger.admin.password.uriClusterattribute festlegen. - Optional können Sie das
adminNutzerpasswort über einen verschlüsselten Cloud Storage-URI übergeben, indem Sie dasdataproc:ranger.db.admin.password.uriClusterattribut festlegen. - 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 aufONsetzen. Mit dieser Einstellung wird festgelegt, ob Erstellern gespeicherter Funktionen vertraut werden kann. Nachdem Sie den Cluster erstellt und Ranger konfiguriert haben, können Sielog_bin_trust_function_creatorswieder aufOFFsetzen. Verwenden Sie eine Cloud SQL-Instanz als die externe MySql-Datenbank, um die Ranger-Datenbank nach der Clusterlöschung zu speichern.
- 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
dataproc:ranger.cloud-sql.use-private-ipClusterattribut 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:
- 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.
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-componentsFlag.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:
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"
Console
- 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).
- Legen Sie das Clusterattribut
- Bei der Installation der Ranger-Komponente muss auch die
Solr-Komponente installiert werden.
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.