En esta página se explica cómo conceder acceso a una Google Cloud cuenta de usuario o a una cuenta de servicio a un servicio Dataproc Metastore que utilice el protocolo de endpoint gRPC.
Información sobre la concesión de roles de metadatos de gRPC
Cuando concedas acceso a tu cuenta a los metadatos, ten en cuenta los siguientes conceptos:
- El nivel de acceso que se va a proporcionar. El nivel de acceso que concedas controla la cantidad de metadatos a los que puede acceder una cuenta. Por ejemplo, puedes proporcionar acceso a los metadatos almacenados en una base de datos o una tabla concretas, o bien a todo tu proyecto.
El principal que requiere acceso. Usas principales de gestión de identidades y accesos (identidades) para ejecutar tus trabajos. Por ejemplo, puedes ejecutar tareas de clúster de Dataproc con cuentas de usuario o cuentas de servicio (normalmente, 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.
En función del ámbito de control necesario, concede a tu principal uno de los siguientes roles predefinidos de gestión de identidades y accesos:
- Para conceder acceso completo a los recursos de metadatos. Rol Propietario de metadatos
(
roles/metastore.metadataOwner
) - Para conceder acceso de lectura y escritura a los metadatos: rol Editor de metadatos
roles/metastore.metadataEditor
) - Para conceder acceso de lectura a los metadatos: rol Lector de metadatos
(
roles/metastore.metadataViewer
)
Antes de empezar
- Habilita Dataproc Metastore en tu proyecto.
- Crea un servicio de metastore que use el protocolo gRPC.
Consulta los requisitos de red específicos de tu proyecto.
- Requisitos de gRPC y de la nube privada virtual (VPC). Si usas gRPC, no tienes que configurar una VPC compartida ni definir ninguna configuración de red adicional. De forma predeterminada, se puede acceder a los endpoints 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 endpoints de gRPC desde una VPC que pertenezca a proyectos del perímetro. Para obtener más información, consulta Controles de Servicio de VPC con Dataproc Metastore.
Roles obligatorios
Para obtener los permisos que necesitas para conceder a una entidad acceso a los metadatos de Dataproc Metastore, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en tu proyecto, siguiendo el principio de privilegio mínimo:
-
Para conceder control total sobre los recursos de Dataproc Metastore (
roles/metastore.editor
) -
Para conceder control total sobre los recursos de Dataproc Metastore, incluida la actualización de los permisos de gestión de identidades y accesos (
roles/metastore.admin
)
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para conceder a una entidad principal acceso a los metadatos de Dataproc Metastore. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para conceder acceso a los metadatos de Dataproc Metastore a una entidad, se necesitan los siguientes permisos:
-
resourcemanager.projects.get
-
resourcemanager.projects.getIamPolicy
-
resourcemanager.projects.setIamPolicy
También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.
Para obtener más información sobre roles y permisos específicos de Dataproc Metastore, consulta la información general sobre la gestión de identidades y accesos de Dataproc Metastore.Conceder acceso a los metadatos a una cuenta principal
Puede conceder acceso a los metadatos a una cuenta principal a nivel de proyecto, servicio, base de datos o tabla.
Conceder acceso a nivel de proyecto
Para conceder acceso a todos los metadatos de Dataproc Metastore a nivel de proyecto, debes asignar un rol de metadatos a tu cuenta principal.
CLI de gcloud
Para asignar roles de metadatos a todos los servicios de Dataproc Metastore de 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
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto Google Cloud al que quieres conceder acceso a los metadatos.PRINCIPAL
: el tipo y el ID de correo (dirección de correo electrónico) de la entidad de seguridad.- En el caso de las cuentas de usuario: user:EMAIL_ID
- En el caso de las cuentas de servicio: serviceAccount:EMAIL_ID
- En Grupos de Google: group:EMAIL_ID
- Para otros tipos de principales: identificadores de principales
METASTORE_ROLE
: uno de los siguientes roles, en función del ámbito de acceso que quieras conceder a la entidad de seguridad:roles/metastore.metadataViewer
,roles/metastore.metadataEditor
oroles/metastore.metadataOwner
.
Conceder acceso a nivel de servicio
Para conceder acceso a todos los metadatos de Dataproc Metastore a nivel de servicio, debes asignar un rol de metadatos a tu cuenta principal.
CLI de gcloud
Para asignar roles de metadatos con la granularidad de un solo servicio de metastore de Dataproc Metastore, ejecuta el siguiente comando:gcloud metastore services
add-iam-policy-binding
gcloud metastore services add-iam-policy-binding SERVICE_ID \ --location=LOCATION \ --member=PRINCIPAL \ --role=METASTORE_ROLE
Haz los cambios siguientes:
SERVICE_ID
: el ID o el identificador completo de tu servicio Dataproc Metastore.LOCATION
: la región de Dataproc Metastore a la que vas a conceder acceso.PRINCIPAL
: el tipo y el ID de correo (dirección de correo) de la cuenta principal:- En el caso de las cuentas de usuario: user:EMAIL_ID
- En el caso de las cuentas de servicio: serviceAccount:EMAIL_ID
- En Grupos de Google: group:EMAIL_ID
- Para otros tipos de principales: identificadores de principales
METASTORE_ROLE
: uno de los siguientes roles, en función del ámbito de acceso que quieras conceder a la entidad de seguridad:roles/metastore.metadataViewer
,roles/metastore.metadataEditor
oroles/metastore.metadataOwner
.
Conceder acceso a nivel de base de datos
Para conceder acceso a todos los metadatos de Dataproc Metastore de una base de datos específica, debes añadir un rol de metadatos a tu cuenta principal.
CLI de gcloud
Para conceder roles de metadatos con la granularidad 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
Haz los cambios siguientes:
DATABASE_ID
: ID de la base de datos a la que quieres conceder acceso a los metadatos. Este ID se obtiene del esquema de tu base de datos.PROJECT
: el ID del proyecto Google Cloud que contiene el servicio Dataproc Metastore al que vas a conceder acceso a los metadatos.LOCATION
: la región del servicio Dataproc Metastore al que vas a conceder acceso.SERVICE_ID
: el ID o el identificador completo de tu servicio Dataproc Metastore.PRINCIPAL
: el tipo y el ID de correo (dirección de correo) de la cuenta principal:- En el caso de las cuentas de usuario: user:EMAIL_ID
- En el caso de las cuentas de servicio: serviceAccount:EMAIL_ID
- En Grupos de Google: group:EMAIL_ID
- Para otros tipos de principales: identificadores de principales
METASTORE_ROLE
: uno de los siguientes roles, en función del ámbito de acceso que quieras conceder a la entidad de seguridad:roles/metastore.metadataViewer
,roles/metastore.metadataEditor
oroles/metastore.metadataOwner
.
Conceder acceso a nivel de tabla
Para conceder acceso a todos los metadatos de Dataproc Metastore de una tabla específica, debes asignar un rol de metadatos a tu cuenta principal.
CLI de gcloud
Para conceder roles de metadatos a nivel de 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
Haz los cambios siguientes:
TABLE_ID
: ID de la tabla a la que vas a conceder acceso. Este ID se obtiene del esquema de tu base de datos.DATABASE_ID
: ID de la base de datos que contiene la tabla a la que está concediendo acceso a los metadatos. Este ID se obtiene del esquema de tu base de datos.PROJECT
: ID del proyecto Google Cloud que contiene el servicio Dataproc Metastore al que vas a conceder acceso a los metadatos.LOCATION
: región del servicio Dataproc Metastore al que vas a conceder acceso a los metadatos.SERVICE_ID
: el ID o el identificador completo de tu servicio Dataproc Metastore.PRINCIPAL
: el tipo y el ID de correo (dirección de correo) de la cuenta principal:- En el caso de las cuentas de usuario: user:EMAIL_ID
- En el caso de las cuentas de servicio: serviceAccount:EMAIL_ID
- En Grupos de Google: group:EMAIL_ID
METASTORE_ROLE
: uno de los siguientes roles, en función del ámbito de acceso que quieras conceder al principal:roles/metastore.metadataViewer
,roles/metastore.metadataEditor
oroles/metastore.metadataOwner
.
Después de conceder acceso a tus metadatos
Una vez que hayas asignado los roles necesarios a tus cuentas de servicio, podrás conectar tu Dataproc Metastore a un clúster de Dataproc. A continuación, el clúster usa el servicio Dataproc Metastore como almacén de metadatos de Hive.
Siguientes pasos
- Vincular un clúster de Dataproc
- Actualizar y eliminar Dataproc Metastore
- Importar metadatos a Dataproc Metastore