En esta página se explica cómo configurar Kerberos para tu Servicio de Dataproc Metastore que usa el protocolo de extremo de gRPC. Si tu servicio de Dataproc Metastore usa el protocolo de extremo Thrift, consulta Configura Kerberos para extremos de Thrift.
Antes de comenzar
Comprende los conceptos básicos de Kerberos
En estas instrucciones, usarás un clúster de Dataproc para crear los siguientes recursos de Kerberos:
- Un archivo keytab.
- Un archivo
krb5.conf
- Una principal de Kerberos.
Para obtener más información sobre cómo funcionan estos recursos de Kerberos con un servicio de Dataproc Metastore, consulta Acerca de Kerberos.
Crea y aloja tu propio KDC de Kerberos o aprende a usar el KDC local de un Clúster de Dataproc.
Crea un bucket de Cloud Storage o accede a uno existente. Debes almacenar tu archivo
krb5.conf
en este bucket.
Funciones requeridas
Para obtener el permiso que necesitas para crear un Dataproc Metastore configurado con Kerberos , solicita a tu administrador que te otorgue el los siguientes roles de IAM en tu proyecto, según el principio de privilegio mínimo:
-
Otorga control total a los recursos de Dataproc Metastore (
roles/metastore.editor
) -
Otorgar acceso completo a todos los recursos de Dataproc Metastore, incluida la administración de políticas de IAM (
roles/metastore.admin
) -
Otorgar acceso de lectura y escritura de gRPC a los metadatos de Dataproc Metastore (
roles/metastore.metadataEditor
)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene el permiso metastore.services.create
, que se requiere para crear un metastore de Dataproc configurado con Kerberos.
También puedes obtener este permiso con roles personalizados o con otros roles predefinidos.
Para obtener más información sobre los roles y permisos específicos de Dataproc Metastore, consulta Administra el acceso con IAM.Para obtener más información, consulta la IAM y el control de acceso de Dataproc Metastore.
Configura Kerberos para Dataproc Metastore
Las siguientes instrucciones muestran cómo configurar Kerberos para un Servicio de Dataproc Metastore que usa el extremo de gRPC.
Primero, crea un Dataproc Metastore que use gRPC extremo. Luego, creas un clúster de Dataproc configurado con Kerberos y te conectas a él.
Crea un servicio de Dataproc Metastore con el extremo de gRPC
Para crear un Dataproc Metastore que use el extremo de gRPC, ejecuta el siguiente comando gcloud metastore services create
:
gcloud
gcloud metastore services create SERVICE \
--instance-size=medium \
--endpoint-protocol=grpc
Reemplaza lo siguiente:
SERVICE
: Es el nombre de tu Servicio de Dataproc Metastore
Crea un clúster de Dataproc y conéctate a tu servicio
Para crear un Dataproc configurado con Kerberos, ejecuta el siguiente comando gcloud dataproc clusters create
.
En este comando, la opción --enable-kerberos
crea el protocolo
Archivo keytab, archivo krb5.conf
y principal. Todos estos valores se crean usando
los nombres y parámetros de configuración predeterminados
que establece el clúster de 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'
Reemplaza lo siguiente:
CLUSTER_NAME
: Es el nombre de tu clúster de Dataproc.PROJECT_ID
es el ID del proyecto de Google Cloud.REGION
: Es la región de Google Cloud en la que deseas crear la clúster de Dataproc.DATAPROC_METASTORE_NAME
: Es el nombre de la el servicio de Dataproc Metastore que adjuntas al clúster. en el siguiente formato:projects/<my_project>/locations/<location>/services/<service_id>
.
Configura Dataproc antes de enviar trabajos
Para ejecutar tus tareas de Dataproc, debes agregar el usuario hive
a la propiedad allowed.system.users
en el archivo container-executor.cfg
de Hadoop. Esto permite a los usuarios
ejecutar consultas para acceder a los datos,
como select * from
.
En las siguientes instrucciones, se muestra cómo establecer una conexión SSH a tu Dataproc principal.
clúster asociado con tu servicio de Dataproc Metastore y
actualiza el archivo container-executor.cfg
.
- En la consola de Google Cloud, ve a la página Instancias de VM.
En la lista de instancias de máquina virtual, haz clic en SSH en la fila de la Nodo principal de Dataproc (
your-cluster-name-m
).Se abrirá una ventana del navegador en tu directorio principal del nodo.
En la sesión de SSH, abre el archivo
container-executor.cfg
de Hadoop.sudo vim /etc/hadoop/conf/container-executor.cfg
Agrega la siguiente línea en cada nodo de Dataproc.
allowed.system.users=hive
Obtén una entrada para kerberos
Las siguientes instrucciones te muestran cómo generar un ticket de Kerberos.
En la sesión SSH del clúster de Dataproc, genera un kernel y te conectarás a tu servicio de Dataproc Metastore.
Este comando usa el nombre de keytab predeterminado generado por tu clúster de 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.
El valor
_HOST
se recupera cuando se muestra el archivo keytab con el comandoklist -kte
. Contiene el nombre de host del nodo principal.
Agrega una principal nueva (opcional)
Para agregar una principal nueva, ejecuta el siguiente comando.
sudo kadmin.local -q "addprinc -randkey PRINCIPAL" sudo kadmin.local -q "ktadd -k /etc/security/keytab/hive.service.keytab PRINCIPAL"
Obtén la entrada para kerberos.
sudo klist -kte /etc/security/keytab/hive.service.keytab sudo kinit -kt /etc/security/keytab/hive.service.keytab PRINCIPAL sudo klist sudo hive