Accede a los extremos de gRPC para Dataproc Metastore

En esta página, se explica cómo otorgar una cuenta de usuario o de servicio de Google Cloud Acceso a un servicio de Dataproc Metastore que usa el extremo gRPC protocolo.

Acerca de la asignación de roles de metadatos de gRPC

Cuando le otorgues a una cuenta acceso a tus metadatos, ten en cuenta lo siguiente conceptos:

  • El nivel de acceso que se debe proporcionar. El nivel de acceso que otorgas controla a cuántos metadatos puede acceder una cuenta. Por ejemplo, puedes elegir proporcionan acceso a los metadatos almacenados en una base de datos específica, una tabla específica, o brindar acceso a todo el proyecto.
  • La principal que requiere acceso. Usas principales (identidades) de IAM para ejecutar tus trabajos. Por ejemplo, puedes ejecutar trabajos de clúster de Dataproc con cuentas de usuario o de servicio (por lo general, la cuenta de servicio de VM de Dataproc ).

    Para obtener más información sobre las cuentas que puedes usar con Dataproc Metastore, consulta Servicio de Dataproc .

Según el alcance de control requerido, otorga a tu principal uno de los los siguientes roles predefinidos de IAM:

  • Otorga acceso completo a los recursos de metadatos. Función de propietario de metadatos (roles/metastore.metadataOwner)
  • Para otorgar acceso de lectura y escritura a los metadatos, usa el rol Editor de metadatos roles/metastore.metadataEditor)
  • Para otorgar acceso de lectura a los metadatos, usa el rol Visualizador de metadatos (roles/metastore.metadataViewer)

Antes de comenzar

Funciones requeridas

Para obtener los permisos que necesitas para otorgar a una principal acceso a los metadatos de Dataproc Metastore, solicita a tu administrador que te otorgue el roles de IAM en tu proyecto, siguiendo el principio de privilegio mínimo:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para otorgar a una principal acceso a los metadatos de Dataproc Metastore Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para otorgar a una principal acceso a los metadatos de Dataproc Metastore:

  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.setIamPolicy

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Para obtener más información sobre roles y permisos específicos de Dataproc Metastore, consulta Descripción general de IAM de Dataproc Metastore.

Otorga a una cuenta principal acceso a los metadatos

Puedes otorgar a una cuenta principal acceso a los metadatos a nivel de proyecto, nivel de servicio, de base de datos o de tabla.

Otorga acceso a nivel del proyecto

Para otorgar acceso a todos los metadatos de Dataproc Metastore en el proyecto debes otorgar un rol de metadatos a tu cuenta principal.

gcloud CLI

Para otorgar roles de metadatos a todos los servicios de Dataproc Metastore, en un proyecto específico, ejecuta el siguiente comando gcloud projects add-iam-policy-binding :

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=PRINCIPAL \
    --role=METASTORE_ROLE

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud al que deseas otorgar acceso a los metadatos.
  • PRINCIPAL: Es el tipo y el ID de correo electrónico (dirección de correo electrónico) de la principal.
    • Para cuentas de usuario: user:EMAIL_ID
    • Para cuentas de servicio: serviceAccount:EMAIL_ID
    • Para Grupos de Google: group:EMAIL_ID
    • Para otros tipos principales: Conceptos relacionados con la identidad
  • METASTORE_ROLE: Uno de los siguientes roles, según el permiso de acceso que desees otorgar a la principal: roles/metastore.metadataViewer, roles/metastore.metadataEditor o roles/metastore.metadataOwner.

Otorga acceso a nivel del servicio

Otorgar acceso a todos los metadatos de Dataproc Metastore al servicio debes otorgar un rol de metadatos a tu cuenta principal.

gcloud CLI

Para otorgar roles de metadatos con el nivel de detalle de un solo servicio de metastore de Dataproc Metastore, ejecuta el siguiente comando de gcloud metastore services add-iam-policy-binding:

gcloud metastore services add-iam-policy-binding SERVICE_ID \
  --location=LOCATION \
  --member=PRINCIPAL \
  --role=METASTORE_ROLE

Reemplaza lo siguiente:

  • SERVICE_ID: El ID o identificador completamente calificado para tu servicio de Dataproc Metastore.
  • LOCATION: Es la región de Dataproc Metastore a la que otorgas acceso.
  • PRINCIPAL: El tipo y el ID de correo electrónico (dirección de correo electrónico) de la cuenta principal:
    • Para cuentas de usuario: user:EMAIL_ID
    • Para cuentas de servicio: serviceAccount:EMAIL_ID
    • Para Grupos de Google: group:EMAIL_ID
    • Para otros tipos principales: Conceptos relacionados con la identidad
  • METASTORE_ROLE: Uno de los siguientes roles, según el permiso de acceso que desees otorgar a la principal: roles/metastore.metadataViewer, roles/metastore.metadataEditor o roles/metastore.metadataOwner.

Otorga acceso a nivel de la base de datos

Para otorgar acceso a todos los metadatos de Dataproc Metastore de una debes agregar un rol de metadatos a tu cuenta principal.

gcloud CLI

Para otorgar roles de metadatos en el nivel de detalle de una base de datos específica, ejecuta el siguiente comando: seguir a gcloud metastore services databases add-iam-policy-binding :

gcloud metastore services databases add-iam-policy-binding DATABASE_ID \
  --project=PROJECT \
  --location=LOCATION \
  --service=SERVICE_ID \
  --member=PRINCIPAL \
  --role=METASTORE_ROLE

Reemplaza lo siguiente:

  • DATABASE_ID: Es el ID de la base de datos a la que le estás otorgando acceso a los metadatos. Obtienes este ID a partir del esquema de tu base de datos.
  • PROJECT: Es el ID del proyecto de Google Cloud que contiene la Servicio de Dataproc Metastore al que le otorgas acceso a los metadatos.
  • LOCATION: Es la región del servicio de Dataproc Metastore a la que le otorgas acceso.
  • SERVICE_ID: El ID o identificador completamente calificado para tu servicio de Dataproc Metastore.
  • PRINCIPAL: El tipo y el ID de correo electrónico (dirección de correo electrónico) de la cuenta principal:
    • Para cuentas de usuario: user:EMAIL_ID
    • Para cuentas de servicio: serviceAccount:EMAIL_ID
    • Para Grupos de Google: group:EMAIL_ID
    • Para otros tipos principales: Conceptos relacionados con la identidad
  • METASTORE_ROLE: Es uno de los siguientes roles, según el alcance de acceso que deseas otorgar al principal: roles/metastore.metadataViewer, roles/metastore.metadataEditor o roles/metastore.metadataOwner.

Otorga acceso a nivel de la tabla

Para otorgar acceso a todos los metadatos de Dataproc Metastore en una tabla específica, debes otorgar un rol de metadatos a tu cuenta principal.

gcloud CLI

Para otorgar roles de metadatos en el nivel de detalle de una tabla, ejecuta el siguiente comando gcloud metastore services databases tables add-iam-policy-binding:

gcloud metastore services databases tables add-iam-policy-binding TABLE_ID \
  --database=DATABASE_ID \
  --project=PROJECT \
  --location=LOCATION \
  --service=SERVICE_ID \
  --member=PRINCIPAL \
  --role=METASTORE_ROLE

Reemplaza lo siguiente:

  • TABLE_ID: El ID de la tabla a la que le estás otorgando acceso. Obtienes este ID a partir del esquema de tu base de datos.
  • DATABASE_ID: Es el ID de la base de datos que contiene la tabla a la que le estás otorgando acceso a los metadatos. Obtienes este ID del esquema de tu base de datos.
  • PROJECT: El ID del proyecto de Google Cloud que contiene el servicio de Dataproc Metastore a los que les otorgas acceso a los metadatos.
  • LOCATION: Es la región del servicio de Dataproc Metastore a la que otorgas acceso a los metadatos.
  • SERVICE_ID: El ID o identificador completamente calificado para tu servicio de Dataproc Metastore.
  • PRINCIPAL: El tipo y el ID de correo electrónico (dirección de correo electrónico) de la cuenta principal:
    • Para cuentas de usuario: user:EMAIL_ID
    • Para cuentas de servicio: serviceAccount:EMAIL_ID
    • Para Grupos de Google: group:EMAIL_ID
  • METASTORE_ROLE: Uno de los siguientes roles, según el permiso de acceso que desees otorgar a la principal: roles/metastore.metadataViewer, roles/metastore.metadataEditor o roles/metastore.metadataOwner.

Después de otorgar acceso a tus metadatos

Después de otorgar los roles necesarios a tus cuentas de servicio, puedes conectar Dataproc Metastore a un clúster de Dataproc. Luego, tu clúster usará el servicio de Dataproc Metastore como su almacén de metadatos de Hive.

¿Qué sigue?