Gestión de Identidades y Accesos (IAM) te permite controlar el acceso de usuarios y grupos a los recursos de los proyectos. Este documento se centra en los permisos de gestión de identidades y accesos relevantes para Dataproc y en los roles de gestión de identidades y accesos que conceden esos permisos.
Permisos de Dataproc
Los permisos de Dataproc permiten que los usuarios, incluidas las cuentas de servicio, realicen acciones en clústeres, tareas, operaciones y plantillas de flujo de trabajo de Dataproc. Por ejemplo, el permiso dataproc.clusters.create
permite a un usuario crear clústeres de Dataproc en un proyecto.
Normalmente, no se conceden permisos, sino roles, que incluyen uno o varios permisos.
En las siguientes tablas se indican los permisos necesarios para llamar a las APIs (métodos) de Dataproc. Las tablas se organizan según las APIs asociadas a cada recurso de Dataproc (clústeres, trabajos, operaciones y plantillas de flujo de trabajo).
Ámbito de los permisos: el ámbito de los permisos de Dataproc que se indican en las siguientes tablas es el proyecto que los contiene (ámbito Google Cloudcloud-platform). Consulta Permisos de cuenta de servicio.
Ejemplos:
dataproc.clusters.createpermite crear clústeres de Dataproc en el proyecto que lo contiene.dataproc.jobs.createpermite enviar trabajos de Dataproc a clústeres de Dataproc en el proyecto contenedor.dataproc.clusters.listpermite enumerar los detalles de los clústeres de Dataproc del proyecto contenedor.
Permisos necesarios para los métodos de clústeres
| Método | Permisos obligatorios |
|---|---|
| projects.regions.clusters.create 1, 2 | dataproc.clusters.create |
| projects.regions.clusters.get | dataproc.clusters.get |
| projects.regions.clusters.list | dataproc.clusters.list |
| projects.regions.clusters.patch 1, 2, 3 | dataproc.clusters.update |
| projects.regions.clusters.delete 1 | dataproc.clusters.delete |
| projects.regions.clusters.start | dataproc.clusters.start |
| projects.regions.clusters.stop | dataproc.clusters.stop |
| projects.regions.clusters.getIamPolicy | dataproc.clusters.getIamPolicy |
| projects.regions.clusters.setIamPolicy | dataproc.clusters.setIamPolicy |
Notas:
- También se necesita el permiso
dataproc.operations.getpara obtener actualizaciones de estado de Google Cloud CLI. - También se necesita el permiso
dataproc.clusters.getpara obtener el resultado de la operación desde Google Cloud CLI. - También se necesita el permiso
dataproc.autoscalingPolicies.usepara habilitar una política de autoescalado en un clúster.
Permisos necesarios para los métodos de trabajos
| Método | Permisos obligatorios |
|---|---|
| projects.regions.jobs.submit 1, 2 | dataproc.jobs.create dataproc.clusters.use |
| projects.regions.jobs.get | dataproc.jobs.get |
| projects.regions.jobs.list | dataproc.jobs.list |
| projects.regions.jobs.cancel 1 | dataproc.jobs.cancel |
| projects.regions.jobs.patch 1 | dataproc.jobs.update |
| projects.regions.jobs.delete 1 | dataproc.jobs.delete |
| projects.regions.jobs.getIamPolicy | dataproc.jobs.getIamPolicy |
| projects.regions.jobs.setIamPolicy | dataproc.jobs.setIamPolicy |
Notas:
La CLI de Google Cloud también requiere
dataproc.jobs.getpermiso para los comandosjobs submit,jobs wait,jobs update,jobs deleteyjobs kill.La CLI de gcloud también requiere el permiso
dataproc.clusters.getpara enviar tareas. Para ver un ejemplo de cómo definir los permisos necesarios para que un usuario ejecutegcloud dataproc jobs submiten un clúster mediante la gestión de identidades y accesos granular de Dataproc, consulta Enviar tareas con la gestión de identidades y accesos granular.
Permisos necesarios para los métodos de operaciones
| Método | Permisos obligatorios |
|---|---|
| projects.regions.operations.get | dataproc.operations.get |
| projects.regions.operations.list | dataproc.operations.list |
| projects.regions.operations.cancel | dataproc.operations.cancel |
| projects.regions.operations.delete | dataproc.operations.delete |
| projects.regions.operations.getIamPolicy | dataproc.operations.getIamPolicy |
| projects.regions.operations.setIamPolicy | dataproc.operations.setIamPolicy |
Permisos necesarios para los métodos de plantillas de flujo de trabajo
| Método | Permisos obligatorios |
|---|---|
| projects.regions.workflowTemplates.instantiate | dataproc.workflowTemplates.instantiate |
| projects.regions.workflowTemplates.instantiateInline | dataproc.workflowTemplates.instantiateInline |
| projects.regions.workflowTemplates.create | dataproc.workflowTemplates.create |
| projects.regions.workflowTemplates.get | dataproc.workflowTemplates.get |
| projects.regions.workflowTemplates.list | dataproc.workflowTemplates.list |
| projects.regions.workflowTemplates.update | dataproc.workflowTemplates.update |
| projects.regions.workflowTemplates.delete | dataproc.workflowTemplates.delete |
| projects.regions.workflowTemplates.getIamPolicy | dataproc.workflowTemplates.getIamPolicy |
| projects.regions.workflowTemplates.setIamPolicy | dataproc.workflowTemplates.setIamPolicy |
Notas:
Los permisos de las plantillas de flujo de trabajo son independientes de los permisos de los clústeres y las tareas. Un usuario sin los permisos
create clusterosubmit jobpuede crear e instanciar una plantilla de flujo de trabajo.Además, la CLI de Google Cloud requiere el permiso
dataproc.operations.getpara sondear si se ha completado el flujo de trabajo.Se necesita el permiso
dataproc.operations.cancelpara cancelar un flujo de trabajo en ejecución.
Permisos necesarios para los métodos de las políticas de autoescalado
| Método | Permisos obligatorios |
|---|---|
| projects.regions.autoscalingPolicies.create | dataproc.autoscalingPolicies.create |
| projects.regions.autoscalingPolicies.get | dataproc.autoscalingPolicies.get |
| projects.regions.autoscalingPolicies.list | dataproc.autoscalingPolicies.list |
| projects.regions.autoscalingPolicies.update | dataproc.autoscalingPolicies.update |
| projects.regions.autoscalingPolicies.delete | dataproc.autoscalingPolicies.delete |
| projects.regions.autoscalingPolicies.getIamPolicy | dataproc.autoscalingPolicies.getIamPolicy |
| projects.regions.autoscalingPolicies.setIamPolicy | dataproc.autoscalingPolicies.setIamPolicy |
Notas:
- Se necesita el permiso
dataproc.autoscalingPolicies.usepara habilitar una política de autoescalado en un clúster con una solicitud de métodoclusters.patch.
Permisos necesarios para los métodos de grupos de nodos
| Método | Permisos obligatorios |
|---|---|
| projects.regions.nodeGroups.create | dataproc.nodeGroups.create |
| projects.regions.nodeGroups.get | dataproc.nodeGroups.get |
| projects.regions.nodeGroups.resize | dataproc.nodeGroups.update |
Roles de Dataproc
Los roles de gestión de identidades y accesos de Dataproc son un conjunto de uno o varios permisos.
Asigna roles a usuarios o grupos para permitirles realizar acciones en los recursos de Dataproc de un proyecto. Por ejemplo, el rol Lector de Dataproc contiene los permisos get y list, que permiten a un usuario obtener y enumerar clústeres, trabajos y operaciones de Dataproc en un proyecto.
En la siguiente tabla se enumeran los roles que contienen los permisos necesarios para crear y gestionar clústeres de Dataproc.
| Conceder rol a | Roles |
|---|---|
| Usuario | Asigna a los usuarios los siguientes roles:
|
| Cuenta de servicio | Asigna el rol Trabajador de Dataproc a la cuenta de servicio de VM de Dataproc. |
Ten en cuenta lo siguiente:
Es posible que tengas que conceder a la cuenta de servicio de VM de Dataproc roles predefinidos o personalizados adicionales que contengan los permisos necesarios para otras operaciones, como leer y escribir datos en Cloud Storage, BigQuery y Cloud Logging, así como en otros recursos de Google Cloud .
En algunos proyectos, es posible que se haya concedido automáticamente a la cuenta de servicio de VM de Dataproc el rol Editor del proyecto, que incluye los permisos del rol Worker de Dataproc, además de otros permisos que no son necesarios para las operaciones del plano de datos de Dataproc. Para seguir el principio de la práctica recomendada de seguridad de mínimos accesos, sustituye el rol Editor por el rol Trabajador de Dataproc (consulta Ver roles de cuenta de servicio de VM).
¿Necesitas conceder roles?
En función de la política de tu organización, es posible que ya se haya concedido un rol obligatorio.
Consultar los roles concedidos a los usuarios
Para ver si se ha concedido un rol a un usuario, sigue las instrucciones que se indican en Gestionar acceso a proyectos, carpetas y organizaciones > Ver el acceso actual.
Comprobar los roles concedidos a cuentas de servicio
Para ver si se ha concedido un rol a una cuenta de servicio, consulta Ver y gestionar roles de cuenta de servicio de gestión de identidades y accesos.
Comprobar los roles concedidos en una cuenta de servicio
Para ver si se ha concedido un rol a un usuario en una cuenta de servicio, sigue las instrucciones que se indican en Gestionar el acceso a cuentas de servicio > Ver el acceso actual.
Buscar roles y permisos de Dataproc
Puede usar la siguiente sección para buscar roles y permisos de Dataproc.
| Role | Permissions |
|---|---|
Dataproc Administrator( Full control of Dataproc resources. |
|
Dataproc Editor( Provides the permissions necessary for viewing the resources required to manage Dataproc, including machine types, networks, projects, and zones. Lowest-level resources where you can grant this role:
|
|
Dataproc Hub Agent( Allows management of Dataproc resources. Intended for service accounts running Dataproc Hub instances. |
|
Dataproc Serverless Editor( Permissions needed to run serverless sessions and batches as a user |
|
Dataproc Serverless Node.( Node access to Dataproc Serverless sessions and batches. Intended for service accounts. |
|
Dataproc Serverless Viewer( Permissions needed to view serverless sessions and batches |
|
Dataproc Service Agent( Gives Dataproc Service Account access to service accounts, compute resources, storage resources, and kubernetes resources. Includes access to service accounts. |
|
Dataproc Viewer( Provides read-only access to Dataproc resources. Lowest-level resources where you can grant this role:
|
|
Dataproc Worker( Provides worker access to Dataproc resources. Intended for service accounts. |
|
Notas:
- Se necesitan o se recomiendan permisos de
computepara crear y ver clústeres de Dataproc al usar la consola de Google Cloud o la CLI de Google Cloud. - Para permitir que un usuario suba archivos, concédele el rol
Storage Object Creator. Para permitir que un usuario vea el resultado de un trabajo, concédele el rolStorage Object Viewer. - Un usuario debe tener permiso
monitoring.timeSeries.listpara ver gráficos en la consola Google Cloud → Dataproc → pestaña Detalles del clúster → Resumen. - Un usuario debe tener permiso
compute.instances.listpara ver el estado de la instancia y el menú SSH de la instancia maestra en la consolaGoogle Cloud →Dataproc→pestaña Detalles del clúster→Instancias de VM. Para obtener información sobre los roles de Compute Engine, consulta Compute Engine > Roles de gestión de identidades y accesos disponibles. - Para crear un clúster con una cuenta de servicio especificada por el usuario, esta cuenta debe tener todos los permisos que otorga el rol
Dataproc Worker, incluido el acceso a los contenedores de almacenamiento provisional y temporal de Dataproc. Es posible que se necesiten roles adicionales en función de las funciones configuradas. Para obtener más información, consulta Crear un clúster con una cuenta de servicio de VM personalizada.
Roles de proyecto
También puedes definir permisos a nivel de proyecto mediante los roles de proyecto de gestión de identidades y accesos. En la siguiente tabla se indican los permisos asociados a los roles de proyecto de gestión de identidades y accesos:
| Rol de proyecto | Permisos |
|---|---|
| Lector de proyectos | Todos los permisos de proyecto para acciones de solo lectura que conservan el estado (get y list) |
| Editor del proyecto | Todos los permisos de lector de proyectos, además de todos los permisos de proyectos para realizar acciones que modifiquen el estado (crear, eliminar, actualizar, usar, cancelar, detener e iniciar) |
| Propietario del proyecto | Todos los permisos de editor de proyectos, además de los permisos para gestionar el control de acceso del proyecto (get/set IamPolicy) y para configurar la facturación del proyecto |
Resumen de roles de gestión de identidades y accesos y operaciones de Dataproc
En la siguiente tabla se enumeran las operaciones de Dataproc asociadas a los roles de proyecto y de Dataproc.
| Operación | Editor del proyecto | Lector de proyectos | Administrador de Dataproc | Editor de Dataproc | Lector de Dataproc |
|---|---|---|---|---|---|
| Obtener o definir permisos de gestión de identidades y accesos de Dataproc | No | No | Sí | No | No |
| Crear clúster | Sí | No | Sí | Sí | No |
| Mostrar clústeres | Sí | Sí | Sí | Sí | Sí |
| Obtener detalles de clúster | Sí | Sí | Sí 1, 2 | Sí 1, 2 | Sí 1, 2 |
| Actualizar clúster | Sí | No | Sí | Sí | No |
| Eliminar clúster | Sí | No | Sí | Sí | No |
| Iniciar o detener un clúster | Sí | No | Sí | Sí | No |
| Enviar tarea | Sí | No | Sí 3 | Sí 3 | No |
| Mostrar tareas | Sí | Sí | Sí | Sí | Sí |
| Obtener detalles de la tarea | Sí | Sí | Sí 4 | Sí 4 | Sí 4 |
| Cancelar tarea | Sí | No | Sí | Sí | No |
| Eliminar tarea | Sí | No | Sí | Sí | No |
| Mostrar operaciones | Sí | Sí | Sí | Sí | Sí |
| Obtener detalles de la operación | Sí | Sí | Sí | Sí | Sí |
| Eliminar operación | Sí | No | Sí | Sí | No |
Notas:
- El gráfico de rendimiento no está disponible a menos que el usuario también tenga un rol con el permiso
monitoring.timeSeries.list. - La lista de VMs del clúster no incluirá información de estado ni un enlace SSH para la instancia maestra a menos que el usuario también tenga un rol con el permiso
compute.instances.list. - Los trabajos que suben archivos requieren que el usuario tenga el rol
Storage Object Creatoro acceso de escritura al staging bucket de Dataproc. - La salida de los trabajos no está disponible a menos que el usuario también tenga el rol Lector de objetos de Storage o se le haya concedido acceso de lectura al segmento de almacenamiento provisional del proyecto.
Permisos de acceso de máquinas virtuales de Dataproc
Los permisos de acceso de las VMs y los roles de gestión de identidades y accesos funcionan conjuntamente para limitar el acceso de las VMs a las APIs. Google Cloud
Por ejemplo, si a las VMs de un clúster solo se les concede el ámbito https://www.googleapis.com/auth/storage-full, las aplicaciones que se ejecuten en las VMs del clúster podrán llamar a las APIs de Cloud Storage, pero no podrán enviar solicitudes a BigQuery, aunque se ejecuten como una cuenta de servicio de VM a la que se le haya concedido un rol de BigQuery con permisos amplios.
Una práctica recomendada es conceder el cloud-platform permiso amplio
(https://www.googleapis.com/auth/cloud-platform)
a las VMs y, a continuación, limitar el acceso de las VMs concediendo roles de IAM específicos a la cuenta de servicio de la VM (consulta la práctica recomendada sobre los permisos).
Ámbitos predeterminados de las VMs de Dataproc. Si no se especifican los permisos al crear un clúster (consulta gcloud dataproc cluster create --scopes), las VMs de Dataproc tienen el siguiente conjunto de permisos predeterminado:
https://www.googleapis.com/auth/cloud-platform (clusters created with image version 2.1+).
https://www.googleapis.com/auth/bigquery
https://www.googleapis.com/auth/bigtable.admin.table
https://www.googleapis.com/auth/bigtable.data
https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.full_control
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write
Si especificas ámbitos al crear un clúster, las VMs del clúster tendrán los ámbitos que especifiques y el siguiente conjunto mínimo de ámbitos obligatorios (aunque no los especifiques):
https://www.googleapis.com/auth/cloud-platform (clusters created with image version 2.1+).
https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write
Gestión de políticas de permiso de gestión de identidades y accesos
Puedes conceder roles de gestión de identidades y accesos a los principales mediante políticas de permiso. Puede obtener y definir políticas de permiso mediante la Google Cloud consola, la API de gestión de identidades y accesos o la CLI de Google Cloud.
- Para la consola de Google Cloud , consulta Control de acceso mediante la consola de Google Cloud .
- Para obtener información sobre la API, consulta Control de acceso mediante la API.
- Para obtener información sobre Google Cloud CLI, consulta Control de acceso con Google Cloud CLI.
Siguientes pasos
- Más información sobre los principales y los roles de Dataproc
- Más información sobre la gestión de identidades y accesos granular de Dataproc
- Más información sobre la gestión de identidades y accesos
- Información sobre las cuentas de servicio en Dataproc