Permisos y funciones de IAM en Cloud Dataproc

Descripción general

Google Cloud Identity and Access Management (IAM) te permite controlar el acceso de grupos y usuarios a los recursos de tu proyecto. Este documento se centra en los permisos de IAM correspondientes a Cloud Dataproc y las funciones de IAM que otorgan esos permisos.

Permisos de Cloud Dataproc

Los permisos de Cloud Dataproc permiten a los usuarios realizar acciones específicas en los clústeres, trabajos, operaciones y plantillas de flujo de trabajo de Cloud Dataproc. Por ejemplo, el permiso dataproc.clusters.create permite al usuario crear clústeres de Cloud Dataproc en tu proyecto. No se les otorgan permisos directamente, sino funciones, que incluyen uno o más permisos.

En las siguientes tablas, se enumeran los permisos necesarios para llamar a las API de Cloud Dataproc (métodos). Las tablas están organizadas según las API asociadas con cada recurso de Cloud Dataproc (clústeres, trabajos, operaciones y plantillas de flujo de trabajo).

Permisos de clústeres

Método Permisos necesarios
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 dataproc.clusters.update
projects.regions.clusters.delete 1 dataproc.clusters.delete
projects.regions.clusters.diagnose 1 dataproc.clusters.use

Notas:

  1. El permiso dataproc.operations.get también es necesario para obtener actualizaciones de estado de la herramienta de línea de comandos de gcloud.
  2. El permiso dataproc.clusters.get también es necesario para obtener el resultado de la operación de la herramienta de línea de comandos de gcloud.

Permisos de trabajos

Método Permisos necesarios
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

Notas:

  1. La herramienta de línea de comandos de gcloud también requiere dataproc.jobs.get para que los comandos jobs submit, jobs wait, jobs update, jobs delete y jobs kill funcionen correctamente.

  2. La herramienta de línea de comandos de gcloud también requiere el permiso dataproc.clusters.get para enviar trabajos. Para obtener un ejemplo sobre cómo configurar los permisos necesarios para que un usuario ejecute gcloud dataproc jobs submit en un clúster específico mediante el uso de la IAM detallada de Cloud Dataproc, consulta Cómo enviar trabajos con la IAM detallada.

Permisos de operaciones

Método Permisos necesarios
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

Permisos de plantilla de flujo de trabajo

Método Permisos necesarios
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.post dataproc.workflowTemplates.update
projects.regions.workflowTemplates.delete dataproc.workflowTemplates.delete

Notas:

  1. Los permisos de la plantilla de flujo de trabajo son independientes de los permisos de trabajo y clúster. Un usuario sin los permisos create cluster o submit job puede crear una plantilla de flujo de trabajo y una instancia de una plantilla de flujo de trabajo.

  2. La herramienta de línea de comandos de gcloud también requiere el permiso dataproc.operations.get para sondear la finalización del flujo de trabajo.

  3. El permiso dataproc.operations.cancel es necesario para cancelar un flujo de trabajo activo.

Funciones de Cloud Dataproc

Las funciones de Identity and Access Management (IAM) de Cloud Dataproc son un conjunto de uno o más permisos. Estas funciones se otorgan a los usuarios o grupos para permitirles realizar acciones en los recursos de Cloud Dataproc en un proyecto. Por ejemplo, la función Lector de Dataproc contiene los permisos dataproc.*.get y dataproc.*.list, que permiten que un usuario obtenga y enumere los clústeres, trabajos y operaciones de Cloud Dataproc en un proyecto.

En la siguiente tabla, se enumeran las funciones IAM de Cloud Dataproc IAM y los permisos asociados a cada función:

ID de función Permisos
roles/dataproc.editor dataproc.*.create
dataproc.*.get
dataproc.*.list
dataproc.*.delete
dataproc.*.update
dataproc.clusters.use
dataproc.jobs.cancel
dataproc.workflowTemplates.instantiate
dataproc.workflowTemplates.instantiateInline
compute.machineTypes.get
compute.machineTypes.list
compute.networks.get
compute.networks.list
compute.projects.get
compute.regions.get
compute.regions.list
compute.zones.get
compute.zones.list
resourcemanager.projects.get
resourcemanager.projects.list
roles/dataproc.viewer dataproc.*.get
dataproc.*.list
compute.machineTypes.get
compute.regions.get
compute.regions.list
compute.zones.get
resourcemanager.projects.get
resourcemanager.projects.list
roles/dataproc.worker (solo para cuentas de servicio) dataproc.agents.*
dataproc.tasks.*
logging.logEntries.create
monitoring.metricDescriptors.create
monitoring.metricDescriptors.get
monitoring.metricDescriptors.list
monitoring.monitoredResourceDescriptors.get
monitoring.monitoredResourceDescriptors.list
monitoring.timeSeries.create
storage.buckets.get
storage.objects.create
storage.objects.get
storage.objects.list
storage.objects.update
storage.objects.delete

Notas:

  • "*" significa "clústeres", "operaciones" o "trabajos", excepto que los únicos permisos asociados con dataproc.operations. son get, list y delete.
  • Se necesitan o recomiendan los permisos de compute enumerados anteriormente para crear y ver los clústeres de Cloud Dataproc cuando se usa Google Cloud Platform Console o la herramienta de línea de comandos de gcloud del SDK de Cloud.
  • Para permitir que un usuario suba archivos, otorga la función Storage Object Creator. Para permitir que un usuario vea el resultado de un trabajo, otorga la función Storage Object Viewer. Ten en cuenta que otorgar cualquiera de estas funciones de Storage le da al usuario la capacidad de acceder a cualquier depósito del proyecto.
  • Un usuario debe tener el permiso monitoring.timeSeries.list para ver grafos en la pestaña de descripción general de Google Cloud Platform Console→Dataproc→Detalles del clúster.
  • Un usuario debe tener el permiso compute.instances.list para ver el menú SSH de la instancia principal y el estado de la instancia en la pestaña de instancia de VM de Google Cloud Platform Console→Dataproc→Detalles del clúster. Para obtener información sobre las funciones de Google Compute Engine, consulta Compute Engine→Funciones de IAM disponibles.
  • Para crear un clúster con una cuenta de servicio especificada del usuario, la cuenta debe tener todos los permisos otorgados por la función Dataproc Worker. Es posible que se requieran funciones adicionales según las características configuradas. Consulta Cuentas de servicio para obtener una lista de funciones adicionales.

Funciones de proyecto

También puedes establecer permisos a nivel del proyecto mediante las funciones de Proyecto de IAM. Aquí hay un resumen de los permisos asociados con las funciones de proyecto de IAM:

Función de proyecto Permisos
Lector del proyecto Todos los permisos de proyecto para acciones de solo lectura que conservan el estado (obtener y enumerar)
Editor del proyecto Todos los permisos de Lector del proyecto más todos los permisos del proyecto para acciones que modifican el estado (crear, borrar, actualizar, usar y cancelar)
Propietario del proyecto Todos los permisos de Editor del proyecto más los permisos para administrar el control de acceso del proyecto (obtener/configurar IamPolicy) y para configurar la facturación del proyecto

Resumen de las operaciones de Cloud Dataproc y de las funciones de IAM

En la tabla siguiente, se resumen las operaciones de Cloud Dataproc disponibles basadas en las funciones otorgadas al usuario, con advertencias señaladas.

Editor del proyecto Lector del proyecto Editor de Cloud Dataproc Lector de Cloud Dataproc
Crear clúster No No
Mostrar clústeres
Obtener detalles del clúster 1, 2 1, 2
Actualizar clúster No No
Borrar clúster No No
Enviar trabajo No 3 No
Mostrar trabajos
Obtener detalles del trabajo 4 4
Cancelar trabajo No No
Borrar trabajos No No
Mostrar lista de operaciones
Obtener detalles de la operación
Borrar operación No No

Notas:

  1. El grafo de rendimiento no está disponible, a menos que el usuario también tenga una función con el permiso monitoring.timeSeries.list.
  2. La lista de VM del clúster no incluirá información de estado o un vínculo SSH para las instancias principales, a menos que el usuario también tenga una función con el permiso compute.instances.list.
  3. Los trabajos que incluyen archivos para subir no se pueden enviar, a menos que el usuario también tenga la función de Creador de objeto de Storage o se le haya otorgado acceso de escritura al depósito de etapa de pruebas para el proyecto.
  4. El resultado del trabajo no está disponible, a menos que el usuario también tenga la función de Lector del objeto de Storage o se le haya otorgado acceso de lectura al depósito de etapa de pruebas para el proyecto.

Cuentas de servicio

Cuando llamas a las API de Cloud Dataproc para realizar acciones en un proyecto en el que se encuentra tu clúster, como crear instancias de VM dentro del proyecto, Cloud Dataproc realiza estas acciones en tu nombre con una cuenta de servicio que tiene los permisos necesarios para realizar las acciones. Las cuentas de servicio que se enumeran a continuación tienen los permisos necesarios para realizar acciones de Cloud Dataproc en el proyecto que se encuentra tu clúster:

  • Cloud Dataproc primero intenta usar service-[project-number]@dataproc-accounts.iam.gserviceaccount.com.
  • Si esa cuenta de servicio no existe, Cloud Dataproc volverá a usar la cuenta de servicio de API de Google, [project-number]@cloudservices.gserviceaccount.com.

Si el clúster usa una red de VPC compartida, un Administrador de VPC compartida debe otorgarle a las cuentas de servicio la función de Usuario de red para el proyecto de host de VPC compartida. Para obtener más información, consulta:

Administración de IAM

Puedes obtener y configurar políticas de IAM con Google Cloud Platform Console, la API de IAM o la herramienta de línea de comandos de gcloud.

Pasos siguientes

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Cloud Dataproc
Si necesitas ayuda, visita nuestra página de asistencia.