Roles y permisos de IAM para Dataproc

Descripción general

Identity and Access Management (IAM) te permite controlar el acceso de usuarios y grupos a los recursos del proyecto. Este documento se enfoca en los permisos de IAM pertinentes para Dataproc y las funciones de IAM que otorgan esos permisos.

Permisos de Dataproc

Los permisos de Dataproc permiten que los usuarios, incluidas las cuentas de servicio, realicen acciones en clústeres de Dataproc, trabajos, operaciones y plantillas de flujo de trabajo. Por ejemplo, el permiso dataproc.clusters.create permite que un usuario cree clústeres de Dataproc en un proyecto. Por lo general, no otorgas permisos; en cambio, otorgas funciones, que incluyen uno o más permisos.

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

Alcance de los permisos: El alcance de los permisos de Dataproc que se enumeran en las siguientes tablas es el proyecto de Google Cloud que los contiene (permiso cloud-platform). Consulta Permisos de la cuenta de servicio.

Ejemplos:

  • dataproc.clusters.create permite la creación de clústeres de Dataproc en el proyecto que los contiene.
  • dataproc.jobs.create permite el envío de trabajos de Dataproc a clústeres de Dataproc en el proyecto que los contiene.
  • dataproc.clusters.list permite mostrar una lista de detalles de los clústeres de Dataproc en el proyecto en el que se otorga.

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.patch1, 2, 3 dataproc.clusters.update
projects.regions.clusters.delete1 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:

  1. El permiso dataproc.operations.get también es necesario para obtener actualizaciones de estado de Google Cloud CLI.
  2. El permiso dataproc.clusters.get también es necesario para obtener el resultado de la operación desde Google Cloud CLI.
  3. dataproc.autoscalingPolicies.use también es necesario para habilitar una política de ajuste de escala automático en un clúster.

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.cancel1 dataproc.jobs.cancel
projects.regions.jobs.patch1 dataproc.jobs.update
projects.regions.jobs.delete1 dataproc.jobs.delete
projects.regions.jobs.getIamPolicy dataproc.jobs.getIamPolicy
projects.regions.jobs.setIamPolicy dataproc.jobs.setIamPolicy

Notas:

  1. Google Cloud CLI también requiere el permiso dataproc.jobs.get para los comandos jobs submit, jobs wait, jobs update, jobs delete y jobs kill.

  2. Gcloud CLI también requiere el permiso dataproc.clusters.get para enviar trabajos. Si deseas ver un ejemplo de cómo configurar los permisos necesarios para que un usuario ejecute gcloud dataproc jobs submit en un clúster con la IAM detallada de 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
projects.regions.operations.getIamPolicy dataproc.operations.getIamPolicy
projects.regions.operations.setIamPolicy dataproc.operations.setIamPolicy

Permisos de plantillas 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.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:

  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 instancia de una plantilla de flujo de trabajo.

  2. Además, Google Cloud CLI 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 en ejecución.

Permisos de políticas de ajuste de escala automático

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

  1. dataproc.autoscalingPolicies.use es necesario para habilitar una política de ajuste de escala automático en un clúster con una solicitud del método clusters.patch.

Permisos de grupos de nodos

Método Permisos necesarios
projects.regions.nodeGroups.create dataproc.nodeGroups.create
projects.regions.nodeGroups.get dataproc.nodeGroups.get
projects.regions.nodeGroups.resize dataproc.nodeGroups.update

Funciones de Dataproc

Las funciones de IAM de Dataproc son un conjunto de uno o más permisos. Otorgas funciones a usuarios o grupos para permitirles realizar acciones en los recursos de Dataproc de un proyecto. Por ejemplo, la función Visualizador de Dataproc contiene los permisos dataproc.*.get y dataproc.*.list, que permiten a un usuario obtener y enumerar una lista de clústeres, trabajos y operaciones de Dataproc de un proyecto.

En la siguiente tabla se muestran las funciones de IAM para Dataproc y los permisos que corresponden a cada función:

ID de función Permisos
roles/dataproc.admin dataproc.*.getIamPolicy
dataproc.*.setIamPolicy
dataproc.*.create
dataproc.*.get
dataproc.*.list
dataproc.*.delete
dataproc.*.update
dataproc.clusters.use
dataproc.clusters.start
dataproc.clusters.stop
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.editor dataproc.*.create
dataproc.*.get
dataproc.*.list
dataproc.*.delete
dataproc.*.update
dataproc.clusters.use
dataproc.clusters.start
dataproc.clusters.stop
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
storage.objects.getIamPolicy
storage.objects.setIamPolicy

Notas:

  • "*" reemplaza a "clusters", "operations" o "jobs", excepto get, list y delete, que son los únicos permisos relacionados con dataproc.operations..
  • Los permisos de compute enumerados antes son necesarios o recomendados para crear y ver clústeres de Dataproc cuando se usa la consola de Google Cloud o gcloud CLI con Google Cloud CLI.
  • Para permitir que un usuario suba archivos, otorga la función Storage Object Creator. Para permitir que un usuario vea el resultado del trabajo, otorga la función Storage Object Viewer.
  • Un usuario debe tener el permiso monitoring.timeSeries.list para ver grafos en la pestaña Descripción general de la consola de Google Cloud→Dataproc→Detalles del clúster.
  • Un usuario debe tener el permiso compute.instances.list para ver el estado de la instancia y el menú SSH de la instancia principal en la pestaña Instancias de VM de la consola de Google Cloud→Dataproc→Detalles del clúster. Para obtener información sobre las funciones de Compute Engine, consulta Compute Engine→Funciones de IAM disponibles.
  • Para crear un clúster con una cuenta de servicio especificada por el usuario, esta debe tener todos los permisos otorgados por la función Dataproc Worker, que incluyen acceso a los buckets temporales y la etapa de pruebas de Dataproc. Es posible que se requieran funciones adicionales según las características configuradas. Consulta Crea un clúster con una cuenta de servicio de VM personalizada para obtener más información.

Funciones de proyecto

También puedes establecer permisos a nivel del proyecto mediante las funciones de Proyecto de IAM. En la siguiente tabla, se enumeran los permisos asociados con las funciones de proyectos de IAM:

Función de proyecto Permisos
Visualizador del proyecto Todos los permisos de proyecto para acciones de solo lectura que conservan el estado (obtener y enumerar)
Editor de 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, detener y empezar)
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

Funciones de IAM y resumen de operaciones de Dataproc

En la siguiente tabla, se enumeran las operaciones de Dataproc asociadas a las funciones de proyecto y de Dataproc.

Operación Editor de proyecto Visualizador del proyecto Administrador de Dataproc Editor de Dataproc Visualizador de Dataproc
Obtener o establecer permisos de IAM para Dataproc No No No No
Crear clúster No No
Mostrar clústeres
Obtener detalles del clúster 1, 2 1, 2 1, 2
Actualizar clúster No No
Borrar clúster No No
Iniciar/detener clúster No No
Enviar trabajo No 3 3 No
Mostrar trabajos
Obtener detalles del trabajo 4 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 gráfico 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 del estado ni un vínculo SSH a la instancia principal, a menos que el usuario también tenga una función con el permiso compute.instances.list.
  3. Los trabajos que suben archivos requieren que el usuario tenga la función Storage Object Creator o acceso de escritura al bucket de etapa de pruebas de Dataproc.
  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 bucket de etapa de pruebas para el proyecto.

Cuentas de servicio

Cuando llamas a las API de Dataproc para realizar acciones en un proyecto, como crear instancias de VM, Dataproc realiza las acciones en tu nombre mediante el uso de una cuenta de servicio que tiene los permisos necesarios para realizar las acciones. Para obtener más información, consulta Cuentas de servicio de Dataproc.

Administración de IAM

Puedes obtener y configurar políticas de IAM con la consola de Google Cloud, la API de IAM o Google Cloud CLI.

¿Qué sigue?