Accede a los extremos de gRPC de Dataproc Metastore

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

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

Cuando otorgues acceso a tus metadatos a una cuenta, ten en cuenta los siguientes con conceptos:

  • El nivel de acceso que se proporcionará. El nivel de acceso que otorgas controla a cuántos metadatos puede acceder una cuenta. Por ejemplo, puedes optar por proporcionar acceso a los metadatos almacenados en una base de datos específica, una tabla específica, o puedes proporcionar acceso a todo tu proyecto.
  • El principal que requiere acceso Usas principales de IAM (identidades) para ejecutar tus trabajos. Por ejemplo, puedes ejecutar trabajos de clúster de Dataproc con cuentas de usuario o cuentas 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 Cuentas de servicio de Dataproc.

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

  • Para otorgar 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, se requiere el rol de editor de metadatos (roles/metastore.metadataEditor).
  • Para otorgar acceso de lectura a los metadatos, se requiere el rol de Visualizador de metadatos (roles/metastore.metadataViewer).

Antes de comenzar

  • Habilita Dataproc Metastore en tu proyecto.
  • Crea un servicio de metastore que use el protocolo gRPC.
  • Comprende los requisitos de red específicos de tu proyecto.

    • Requisitos de gRPC y nube privada virtual (VPC). Si usas gRPC, no tienes que configurar una VPC compartida ni establecer ninguna configuración de red adicional. 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 Controles del servicio de VPC 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 acceso principal a los metadatos de Metastore de Dataproc. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para otorgar acceso principal 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 los roles y permisos específicos de Dataproc Metastore, consulta Descripción general de la IAM de Dataproc Metastore.

Otorga acceso a los metadatos a una cuenta principal

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 del 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 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 del 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: Es el ID o el identificador completamente calificado de tu servicio de Dataproc Metastore.
  • LOCATION: Es la región de Dataproc Metastore a la que le 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 en una base de datos específica, 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 otorgas 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 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 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: Es el ID de la tabla a la que le otorgas acceso. Obtienes este ID 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 otorgas 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 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 tu 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?