Il componente facoltativo Apache Ranger ti consente di gestire le autorizzazioni e l'auditing per l'ecosistema Hadoop sui cluster Managed Service for Apache Spark. Quando installi questo componente durante la creazione del cluster, il server Ranger admin e la UI web sono disponibili sulla porta 6080 sul primo nodo master del cluster.
Per attività e indicazioni correlate, scopri come utilizzare Ranger con Kerberos, eseguire il backup e il ripristino di uno schema Ranger e consulta le best practice per l'utilizzo di Apache Ranger su Managed Service for Apache Spark.
Installa il componente
Installa il componente quando crei un cluster Managed Service for Apache Spark. I componenti possono essere aggiunti ai cluster creati con Managed Service for Apache Spark versione 1.3 e successive. Il componente Ranger richiede l'installazione del componente Solr.
Consulta Versioni di Managed Service for Apache Spark supportate per la versione del componente inclusa in ogni release dell'immagine di Managed Service for Apache Spark.
Passaggi di installazione:
Imposta la password di Ranger
admin:- Concedi il ruolo Cloud Key Management Service CryptoKey Encrypter/Decrypter al service account del cluster. Per impostazione predefinita, il service account del cluster è impostato come service account predefinito di Compute Engine, che ha il seguente formato:
Puoi specificare un service account del cluster diverso quando crei il cluster.project-number-compute@
- Esempio:
concedi il ruolo Cloud KMS CryptoKey Encrypter/Decrypter
al account di servizio predefinito di Compute Engine:
gcloud projects add-iam-policy-binding project-id \ --member=serviceAccount:project-number-compute@ \ --role=roles/cloudkms.cryptoKeyDecrypter
- Esempio:
concedi il ruolo Cloud KMS CryptoKey Encrypter/Decrypter
al account di servizio predefinito di Compute Engine:
- Cripta la password di Ranger
adminutilizzando una chiave di Key Management Service (KMS). Per i cluster con versione immagine precedente alla 2.2, la password deve essere composta da almeno 8 caratteri, con almeno un carattere alfabetico e uno numerico. Per i cluster con versione immagine 2.2 e successive, la password deve essere composta da almeno 8 caratteri, con almeno una lettera maiuscola, una lettera minuscola e un carattere numerico.- Esempio:
- Crea le chiavi automatizzate:
gcloud kms keyrings create my-keyring --location=global
- Crea la chiave:
gcloud kms keys create my-key \ --location=global \ --keyring=my-keyring \ --purpose=encryption
- Cripta la password utente di Ranger
admin:echo 'my-ranger-admin-password' | \ gcloud kms encrypt \ --location=global \ --keyring=my-keyring \ --key=my-key \ --plaintext-file=- \ --ciphertext-file=admin-password.encrypted
- Crea le chiavi automatizzate:
- Esempio:
- Carica la password criptata in un bucket Cloud Storage nel tuo progetto.
- Esempio:
gcloud storage cp admin-password.encrypted gs://my-bucket
- Esempio:
- Concedi il ruolo Cloud Key Management Service CryptoKey Encrypter/Decrypter al service account del cluster. Per impostazione predefinita, il service account del cluster è impostato come service account predefinito di Compute Engine, che ha il seguente formato:
Crea il tuo cluster:
- Quando installi il componente Ranger, devi installare anche il componente Solr.
- Il componente Ranger si basa sul componente Solr per archiviare ed eseguire query sui log di controllo, che per impostazione predefinita utilizza HDFS come spazio di archiviazione. Questi dati HDFS vengono eliminati quando viene eliminato il cluster. Per configurare il componente Solr in modo che archivi i dati, inclusi i log di controllo di Ranger, su Cloud Storage, utilizza la
dataproc:solr.gcs.path=gs://<bucket>proprietà del cluster quando crei il cluster. I dati di Cloud Storage vengono conservati dopo l'eliminazione del cluster.
- Il componente Ranger si basa sul componente Solr per archiviare ed eseguire query sui log di controllo, che per impostazione predefinita utilizza HDFS come spazio di archiviazione. Questi dati HDFS vengono eliminati quando viene eliminato il cluster. Per configurare il componente Solr in modo che archivi i dati, inclusi i log di controllo di Ranger, su Cloud Storage, utilizza la
- Passa gli URI Cloud Storage della chiave KMS e della password al comando di creazione del cluster impostando le proprietà del cluster
dataproc:ranger.kms.key.uriedataproc:ranger.admin.password.uri. - Facoltativamente, puoi passare la password dell'utente
admindel database Ranger tramite un URI del file Cloud Storage criptato impostando la proprietà del clusterdataproc:ranger.db.admin.password.uri. Per impostazione predefinita, il componente Ranger utilizza l'istanza del database MySQL in esecuzione sul primo nodo master del cluster. Per rendere persistente il database Ranger dopo l'eliminazione del cluster, puoi configurare il cluster in modo che utilizzi un'istanza Cloud SQL esterna. Per utilizzare un'istanza Cloud SQL esterna, segui questi passaggi:
- Prima di creare il cluster, devi
configurare l'istanza Cloud SQL per
attivare il flag di database
log_bin_trust_function_creatorsimpostandolo suon. In questo modo, gli script di configurazione dello schema Ranger possono essere eseguiti durante la creazione del cluster. Dopo aver creato il cluster, puoi reimpostare questo flag suoff. - Imposta la proprietà del cluster
dataproc:ranger.cloud-sql.instance.connection.namesull'istanza Cloud SQL. - Imposta la proprietà del cluster
dataproc:ranger.cloud-sql.root.password.urisull'URI Cloud Storage della password root criptata con la chiave KMS dell'istanza Cloud SQL. - Imposta la proprietà del cluster
dataproc:ranger.cloud-sql.use-private-ipper indicare se la connessione all'istanza Cloud SQL avviene tramite IP privato.
Quando utilizzi un'istanza Cloud SQL esterna, il componente Ranger utilizza il Cloud SQL Auth Proxy per connettersi all'istanza Cloud SQL. Per utilizzare il proxy:
- Imposta l'ambito dell'API
sqlservice.adminquando crei il cluster (consulta Autorizzazione delle richieste con OAuth 2.0). Se utilizzi il comandogcloud dataproc cluster create, aggiungi il parametro--scopes=default,sql-admin. - Abilita l'API SQL Admin nel tuo progetto.
- Assicurati che il account di servizio del cluster abbia il ruolo Cloud SQL Editor.
- Poiché il proxy di autenticazione Cloud SQL sul nodo master crea connessioni in uscita all'istanza Cloud SQL sulla porta 3307, assicurati che le connessioni TCP in uscita dal nodo master all'istanza Cloud SQL sulla porta 3307 siano consentite. Per saperne di più, consulta Come funziona il proxy di autenticazione Cloud SQL.
- Prima di creare il cluster, devi
configurare l'istanza Cloud SQL per
attivare il flag di database
ConsoleGoogle Cloud
- Nella console Google Cloud , apri la pagina Crea cluster.
- Fai clic su Configurazione aggiuntiva per espandere la sezione.
- Modifica i componenti facoltativi.
- Nel riquadro che si apre, seleziona le caselle di controllo per Ranger e Solr, quindi fai clic su Salva.
gcloud CLI
Per creare un cluster Managed Service for Apache Spark che includa il componente Ranger, utilizza il comando gcloud dataproc clusters create cluster-name con il 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
API REST
Specifica i componenti Ranger e Solr nel campo SoftwareConfig.Component come parte di una richiesta clusters.create dell'API Dataproc. Devi anche impostare le seguenti proprietà del cluster nel campo SoftwareConfig.Component.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"
- Quando installi il componente Ranger, devi installare anche il componente Solr.
Fai clic sulla scheda Interfacce web. In Gateway dei componenti, fai clic su Ranger per aprire l'interfaccia web di Ranger. Accedi con il nome utente amministratore di Ranger (ad esempio "admin") e la password.
Log di Ranger Admin
I log di Ranger admin sono disponibili in Logging come log di ranger-admin-root.