Componente facoltativo Ranger di Dataproc

Puoi installare componenti aggiuntivi come Ranger quando crei un cluster Dataproc utilizzando la funzionalità Componenti facoltativi. Questa pagina descrive il componente Ranger.

Il componente Apache Ranger è un framework open source per gestire autorizzazioni e controllo dell'ecosistema Hadoop. Il server di amministrazione Ranger e la UI web sono disponibili sulla porta 6080 nel primo nodo master del cluster.

Vedi anche:

Installa il componente

Installa il componente quando crei un cluster Dataproc. I componenti possono essere aggiunti ai cluster creati con Dataproc versione 1.3 e successive. Il componente Ranger richiede l'installazione del componente Solr come mostrato di seguito.

Consulta Versioni di Dataproc supportate per la versione del componente inclusa in ogni release dell'immagine Dataproc.

Procedura di installazione:

  1. Configura la password amministratore di Ranger:

    1. Concedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS 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:
      project-number-compute@developer.gserviceaccount.com
      
      Puoi specificare un service account cluster diverso quando crei il cluster di seguito.
      1. Esempio: Concedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS al account di servizio predefinito di Compute Engine:
        gcloud projects add-iam-policy-binding project-id \
            --member=serviceAccount:project-number-compute@developer.gserviceaccount.com \
            --role=roles/cloudkms.cryptoKeyDecrypter
        
    2. Cripta la password dell'utente amministratore Ranger utilizzando una chiave di Key Management Service (KMS). Per i cluster con versione dell'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.
      1. Esempio:
        1. Crea il keyring:
          gcloud kms keyrings create my-keyring --location=global
          
        2. Crea la chiave:
          gcloud kms keys create my-key \
              --location=global \
              --keyring=my-keyring \
              --purpose=encryption
          
        3. Cripta la password dell'utente amministratore di Ranger:
          echo 'my-ranger-admin-password' | \
            gcloud kms encrypt \
              --location=global \
              --keyring=my-keyring \
              --key=my-key \
              --plaintext-file=- \
              --ciphertext-file=admin-password.encrypted
          
    3. Carica la password criptata in un bucket Cloud Storage nel tuo progetto.
      1. Esempio:
        gcloud storage cp admin-password.encrypted gs://my-bucket
        
  2. Crea il cluster:

    1. Quando installi il componente Ranger, devi installare anche il componente Solr, come mostrato di seguito.
      1. 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 il cluster viene eliminato. Per configurare il componente Solr per archiviare i dati, inclusi i log di controllo 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.
    2. 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.uri e dataproc:ranger.admin.password.uri.
    3. Se vuoi, puoi inserire la password dell'utente amministratore del database Ranger tramite un URI di file Cloud Storage criptato impostando la dataproc:ranger.db.admin.password.uri proprietà del cluster.
    4. Per impostazione predefinita, il componente Ranger utilizza l'istanza del database MySQL in esecuzione sul primo nodo master del cluster. Nell'istanza MySQL, attiva il flag log_bin_trust_function_creators impostando la variabile su ON. L'impostazione di questo flag controlla se i creator di funzioni archiviate possono essere considerati attendibili. Dopo aver creato correttamente il cluster e configurato Ranger, puoi reimpostare log_bin_trust_function_creators su OFF.
    5. Per rendere persistente il database Ranger dopo l'eliminazione del cluster, utilizza un'istanza Cloud SQL come database MySQL esterno.

      1. Imposta la dataproc:ranger.cloud-sql.instance.connection.name proprietà del cluster sull'istanza Cloud SQL.
      2. Imposta la dataproc:ranger.cloud-sql.root.password.uri proprietà del cluster sull'URI Cloud Storage della password root criptata con la chiave KMS dell'istanza Cloud SQL.
      3. Imposta la proprietà del cluster dataproc:ranger.cloud-sql.use-private-ip per indicare se la connessione all'istanza Cloud SQL avviene tramite IP privato.

      Il componente Ranger utilizza Cloud SQL Proxy per connettersi all'istanza Cloud SQL. Per utilizzare il proxy:

      1. Imposta l'ambito dell'API sqlservice.admin quando crei il cluster (vedi Autorizzare le richieste con OAuth 2.0). Se utilizzi il comando gcloud dataproc cluster create, aggiungi il parametro --scopes=default,sql-admin.
      2. Abilita l'API SQL Admin nel tuo progetto.
      3. Assicurati che il account di servizio del cluster abbia il ruolo Editor Cloud SQL.

      Comando g-cloud

      Per creare un cluster Dataproc 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 nell'ambito di una richiesta clusters.create dell'API Dataproc. Devi anche impostare le seguenti proprietà del cluster nel campo SoftwareConfig.Component.properties:

      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. Attiva il componente e il gateway dei componenti.
        • Nella console Google Cloud , apri la pagina Dataproc Crea un cluster. Il riquadro Configura cluster è selezionato.
        • Nella sezione Componenti:

Fai clic sulla scheda Interfacce web. In Component gateway, 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 amministrazione di Ranger

I log di Ranger Admin sono disponibili in Logging come log ranger-admin-root.