Componente facoltativo Ranger di Dataproc

Puoi installare componenti aggiuntivi come Ranger quando crei un cluster Dataproc utilizzando la funzionalità Componenti facoltativi. In questa pagina viene descritto il componente Ranger.

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

Vedi anche:

Installa il componente

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

Consulta le versioni di Dataproc supportate per la versione dei componenti inclusa in ogni release di immagine Dataproc.

Procedura di installazione:

  1. Configura la password amministratore di Ranger:

    1. Concedi il ruolo Autore crittografia/decriptazione CryptoKey Cloud KMS all'account di servizio del cluster. Per impostazione predefinita, l'account di servizio del cluster è impostato sull'account di servizio predefinito di Compute Engine, con il seguente formato:
      project-number-compute@developer.gserviceaccount.com
      
      Quando crei il cluster, puoi specificare un account di servizio del cluster diverso di seguito.
      1. Esempio: concedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'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 Key Management Service (KMS). La password deve essere costituita da almeno 8 caratteri, con almeno un carattere alfabetico 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 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:
        gsutil cp admin-password.encrypted gs://my-bucket
        
  2. Crea il cluster:

    1. Durante l'installazione del componente Ranger, è necessario installare anche il componente Solr, come mostrato di seguito.
      1. Il componente Ranger si basa sul componente Solr per archiviare ed eseguire query sugli audit log, che per impostazione predefinita utilizzano 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 gli audit log di Ranger, in Cloud Storage, utilizza la proprietà cluster dataproc:solr.gcs.path=gs://<bucket> 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à cluster dataproc:ranger.kms.key.uri e dataproc:ranger.admin.password.uri.
    3. Se vuoi, puoi passare la password dell'utente amministratore del database Ranger tramite un URI criptato del file Cloud Storage impostando la proprietà cluster dataproc:ranger.db.admin.password.uri.
    4. Per impostazione predefinita, il componente Ranger utilizza l'istanza del database MySql in esecuzione sul primo nodo master del cluster. Nell'istanza MySQL, abilita il flag log_bin_trust_function_creators impostando la variabile su ON. L'impostazione di questo flag consente di stabilire se gli autori delle funzioni memorizzate possono essere considerati attendibili. Dopo aver creato il cluster e aver configurato il Ranger, puoi reimpostare log_bin_trust_function_creators su OFF.
    5. Per rendere permanente il database Ranger dopo l'eliminazione del cluster, utilizza un'istanza Cloud SQL come database MySql esterno.

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

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

      1. Imposta l'ambito API sqlservice.admin quando crei il cluster (consulta la sezione Autorizzazione delle richieste con OAuth 2.0). Se utilizzi il comando gcloud dataproc cluster create, aggiungi il parametro --scopes=default,sql-admin.
      2. Abilitare l'API SQL Admin nel progetto.
      3. Assicurati che l'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 cluster-name gcloud dataproc clusters create 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 inoltre impostare le seguenti proprietà 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. Abilita il gateway del componente e del componente.
        • Nella console Google Cloud, apri la pagina Crea un cluster di Dataproc. Il riquadro Configura cluster è selezionato.
        • Nella sezione Componenti:

Fai clic sulla scheda Interfacce web. In Gateway componente, fai clic su Ranger per aprire l'interfaccia web di Ranger. Accedi con nome utente e password di amministratore (ad esempio "amministratore") del ranger.

Log di amministrazione di Ranger

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