Configura Kerberos per gli endpoint gRPC Dataproc Metastore

In questa pagina viene spiegato come configurare Kerberos per Servizio Dataproc Metastore che utilizza il protocollo endpoint gRPC. Se il servizio Dataproc Metastore utilizza il protocollo dell'endpoint Thrift, consulta Configurare Kerberos per gli endpoint Thrift.

Prima di iniziare

  • Comprendi le nozioni di base di Kerberos.

    In queste istruzioni, utilizzi un cluster Dataproc per creare i seguenti asset Kerberos:

    • Un file keytab.
    • Un file krb5.conf.
    • Un'entità Kerberos.

    Per ulteriori informazioni su come funzionano queste risorse Kerberos con un servizio Dataproc Metastore, consulta Informazioni su Kerberos.

  • Crea e ospita il tuo KDC Kerberos o scopri come utilizzare il KDC locale di un Cluster Dataproc.

  • Crea un bucket Cloud Storage o ottieni l'accesso a uno esistente. Tu devi archiviare il tuo file krb5.conf in questo bucket.

Ruoli obbligatori

Per ottenere l'autorizzazione necessaria per creare un Dataproc Metastore configurato con Kerberos , chiedi all'amministratore di concederti i seguenti ruoli IAM sul tuo progetto, in base al principio del privilegio minimo:

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene metastore.services.create autorizzazione, che è obbligatorio creare un Dataproc Metastore configurato con Kerberos .

Potresti anche riuscire a ottenere questa autorizzazione con ruoli personalizzati altri ruoli predefiniti.

Per ulteriori informazioni su ruoli e autorizzazioni specifici di Dataproc Metastore, consulta Gestire l'accesso con IAM.

Per ulteriori informazioni, consulta IAM e controllo degli accessi di Dataproc Metastore.

Configura Kerberos per Dataproc Metastore

Le seguenti istruzioni mostrano come configurare Kerberos per un Servizio Dataproc Metastore che utilizza l'endpoint gRPC.

Per prima cosa, devi creare un Dataproc Metastore che utilizza endpoint. Dopodiché, crea un cluster Dataproc configurato con Kerberos e connettiti.

Crea un servizio Dataproc Metastore con l'endpoint gRPC

Per creare un Dataproc Metastore che utilizza l'endpoint gRPC, esegui il seguente comando gcloud metastore services create:

gcloud

gcloud metastore services create SERVICE \
     --instance-size=medium \
     --endpoint-protocol=grpc

Sostituisci:

  • SERVICE: il nome del servizio Dataproc Metastore

Crea un cluster Dataproc e connettiti al tuo servizio

Per creare un Dataproc configurato con Kerberos, esegui questo comando: Comando gcloud dataproc clusters create.

In questo comando, l'opzione --enable-kerberos crea il Kerberos File keytab, krb5.conf file e entità. Questi valori vengono tutti creati nomi e impostazioni predefiniti definiti dal cluster Dataproc.

gcloud

gcloud dataproc clusters create CLUSTER_NAME \
    --project PROJECT_ID \
    --region REGION \
    --image-version 2.0-debian10 \
    --dataproc-metastore DATAPROC_METASTORE_NAME \
    --enable-kerberos \
    --scopes 'https://www.googleapis.com/auth/cloud-platform'

Sostituisci:

  • CLUSTER_NAME: il nome del cluster Dataproc.
  • PROJECT_ID: l'ID del tuo progetto Google Cloud.
  • REGION: la regione Google Cloud in cui vuoi creare il tuo cluster Dataproc.
  • DATAPROC_METASTORE_NAME: il nome del al servizio Dataproc Metastore che stai collegando al cluster, nel seguente formato: projects/<my_project>/locations/<location>/services/<service_id>.

Configura Dataproc prima di inviare i job

Per eseguire i job Dataproc, devi aggiungere l'utente hive alla proprietà allowed.system.users nel file container-executor.cfg di Hadoop. In questo modo, gli utenti possono eseguire query per accedere ai dati, come select * from.

Le istruzioni riportate di seguito mostrano come accedere tramite SSH al tuo cluster Dataproc primario associato al tuo servizio Dataproc Metastore e aggiornare il file container-executor.cfg.

  1. Nella console Google Cloud, vai alla pagina Istanze VM.
  2. Nell'elenco delle istanze della macchina virtuale, fai clic su SSH nella riga del node principale Dataproc (your-cluster-name-m).

    Sul nodo si apre una finestra del browser nella home directory.

  3. Nella sessione SSH, apri il file container-executor.cfg di Hadoop.

    sudo vim /etc/hadoop/conf/container-executor.cfg
    

    Aggiungi la seguente riga su ogni nodo Dataproc.

    allowed.system.users=hive
    

Ottenere una richiesta di Kerberos

Le seguenti istruzioni mostrano come generare un ticket Kerberos.

  1. Nella sessione SSH del cluster Dataproc, genera un ticket kerberos e connettiti al servizio Dataproc Metastore.

    Questo comando utilizza il nome predefinito della chiave generata dal tuo cluster Dataproc.

    sudo klist -kte /etc/security/keytab/hive.service.keytab
    sudo kinit -kt /etc/security/keytab/hive.service.keytab hive/_HOST@${realm}
    sudo klist # gets the ticket information.
    

    Il valore _HOST viene recuperato quando il file keytab viene elencato utilizzando il comando klist -kte. Contiene il nome host del nodo principale.

(Facoltativo) Aggiungi una nuova entità

  1. Per aggiungere un nuovo principale, esegui il seguente comando.

    sudo kadmin.local -q "addprinc -randkey PRINCIPAL"
    sudo kadmin.local -q "ktadd -k /etc/security/keytab/hive.service.keytab PRINCIPAL"
    
  2. Recupera la richiesta di Kerberos.

    sudo klist -kte /etc/security/keytab/hive.service.keytab
    sudo kinit -kt /etc/security/keytab/hive.service.keytab PRINCIPAL
    sudo klist
    sudo hive
    

Passaggi successivi