Questa pagina spiega come configurare Kerberos per il servizio Dataproc Metastore che utilizza il protocollo dell'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 accedi a uno esistente. Devi memorizzare il 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 nel progetto, in base al principio del privilegio minimo:
-
Concede il controllo completo delle risorse Dataproc Metastore (
roles/metastore.editor
) -
Concedere l'accesso completo a tutte le risorse Dataproc Metastore, inclusa l'amministrazione dei criteri IAM (
roles/metastore.admin
) -
Concedere l'accesso in lettura/scrittura gRPC ai metadati di Dataproc Metastore (
roles/metastore.metadataEditor
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene l'autorizzazione
metastore.services.create
necessaria per
creare un Dataproc Metastore configurato con Kerberos .
Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.
Per ulteriori informazioni su ruoli e autorizzazioni specifici di Dataproc Metastore, consulta Gestire l'accesso con IAM.Per ulteriori informazioni, consulta Controllo dell'accesso e IAM di Dataproc Metastore.
Configura Kerberos per Dataproc Metastore
Le istruzioni riportate di seguito mostrano come configurare Kerberos per un servizio Dataproc Metastore che utilizza l'endpoint gRPC.
Innanzitutto, crea un Dataproc Metastore che utilizzi l'endpoint gRPC. 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 servizio
Per creare un cluster Dataproc configurato con Kerberos, esegui il seguente
gcloud dataproc clusters create
comando.
In questo comando, l'opzione --enable-kerberos
crea il file Keytab di Kerberos, il file krb5.conf
e il principale. Questi valori vengono tutti creati utilizzando i nomi e le impostazioni predefinite impostati 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 tuo 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 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 eseguire SSH nel tuo cluster Dataproc primario associato al tuo servizio Dataproc Metastore e aggiornare il file container-executor.cfg
.
- Nella console Google Cloud, vai alla pagina Istanze VM.
Nell'elenco delle istanze della macchina virtuale, fai clic su SSH nella riga del node principale Dataproc (
your-cluster-name-m
).Viene aperta una finestra del browser nella home directory del nodo.
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 istruzioni riportate di seguito mostrano come generare un ticket Kerberos.
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 comandoklist -kte
. Contiene il nome host del nodo principale.
(Facoltativo) Aggiungi un nuovo entità
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"
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