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 proporcionará. El nivel de acceso que le otorgas a los controles la cantidad de metadatos a los que 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

  • Habilitar Dataproc Metastore en tu proyecto.
  • Crea un servicio de almacén de metadatos que usa el protocolo gRPC.
  • Comprende los requisitos de red específicos de tu proyecto.

    • Requisitos de gRPC y la nube privada virtual (VPC). Si utilizas gRPC, no tienes que configurar una VPC compartida ni establecer ninguna red adicional parámetros de configuración. De forma predeterminada, se puede acceder a los extremos de gRPC desde cualquier VPC.

    Sin embargo, hay una excepción. Si tu proyecto usa un perímetro de servicio de VPC-SC, solo se puede acceder a los extremos de gRPC desde una VPC que pertenezca a proyectos dentro del perímetro. Para obtener más información, consulta Servicio de VPC Controles con Dataproc Metastore.

Funciones requeridas

Para obtener los permisos que necesitas para otorgar acceso principal a los metadatos de Dataproc Metastore, pídele a tu administrador que te otorgue los siguientes 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 otorgarle a una cuenta principal acceso a los metadatos a nivel del proyecto, del servicio, de la base de datos o de la tabla.

Otorga acceso a nivel de proyecto

Para otorgar acceso a todos los metadatos de Dataproc Metastore a nivel del 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 especificado, 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: 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) del 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 servicio

Para otorgar acceso a todos los metadatos de Dataproc Metastore a nivel del 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 de principales, consulta 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 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 con el nivel de detalle de una base de datos específica, ejecuta el siguiente comando 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 del esquema de tu base de datos.
  • PROJECT: Es el ID del proyecto de Google Cloud que contiene el 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: Es el ID o el identificador completamente calificado de 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 de principales, consulta 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 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 con 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 a partir del esquema de tu base de datos.
  • PROJECT: Es el ID del proyecto de Google Cloud que contiene el 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 otorgas acceso a los metadatos.
  • SERVICE_ID: Es el ID o el identificador completamente calificado de 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: 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.

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?