Descripción general
La administración de identidades y accesos (IAM) te permite controlar el acceso de usuarios y grupos a los recursos de tu 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 específicas en los clústeres, los trabajos, las operaciones y las plantillas de flujo de trabajo de Dataproc. Por ejemplo, el permiso dataproc.clusters.create
permite que un usuario cree clústeres de Dataproc en tu proyecto.
No se otorgan permisos a los usuarios directamente, sino 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 API asociadas a cada recurso de 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.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:
- El permiso
dataproc.operations.get
también es necesario para obtener actualizaciones de estado de la CLI de Google Cloud. - El permiso
dataproc.clusters.get
también es necesario para obtener el resultado de la operación de la CLI de Google Cloud. 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:
Además, la CLI de Google Cloud requiere
dataproc.jobs.get
para que los comandosjobs submit
,jobs wait
,jobs update
,jobs delete
yjobs kill
funcionen correctamente.Además, la CLI de Google Cloud requiere el permiso
dataproc.clusters.get
para enviar trabajos. Para ver un ejemplo de cómo configurar los permisos necesarios a fin de que un usuario ejecutegcloud dataproc jobs submit
en un clúster específico con la IAM detallada de Dataproc, consulta Envía 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 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.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 la plantilla de flujo de trabajo son independientes de los permisos de trabajo y clúster. Un usuario sin los permisos
create cluster
osubmit job
puede crear una instancia de una plantilla de flujo de trabajo.Además, la CLI de Google Cloud requiere el permiso
dataproc.operations.get
para sondear la finalización del flujo de trabajo.El permiso
dataproc.operations.cancel
es necesario para cancelar un flujo de trabajo en ejecución.
Permisos de las 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:
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étodoclusters.patch
.
Funciones de Dataproc
Las funciones de IAM de Dataproc son un conjunto de uno o más permisos.
Debes otorgar funciones a usuarios o grupos para permitirles realizar acciones en los recursos de Dataproc de tu 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
ydelete
, que son los únicos permisos relacionados condataproc.operations.
. - Se necesitan o recomiendan los permisos
compute
mencionados anteriormente para crear y ver clústeres de Dataproc cuando se usa Google Cloud Console o la CLI de Google Cloudgcloud
. - 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ónStorage Object Viewer
. Ten en cuenta que otorgar cualquiera de estas funciones de Storage le da al usuario la capacidad de acceder a cualquier bucket del proyecto. - Un usuario debe tener el permiso
monitoring.timeSeries.list
para ver los gráficos de la pestaña Descripción general en Google Cloud Console→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 en Google Cloud 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 por el usuario, la cuenta de servicio debe tener todos los permisos que otorga 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 |
---|---|
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
La siguiente tabla resume las operaciones de Dataproc disponibles según la función otorgada al usuario y se señalan algunas advertencias.
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 | Sí | No | No |
Crear clúster | Sí | No | Sí | Sí | No |
Mostrar clústeres | Sí | Sí | Sí | Sí | Sí |
Obtener detalles del clúster | Sí | Sí | Sí 1, 2 | Sí 1, 2 | Sí 1, 2 |
Actualizar clúster | Sí | No | Sí | Sí | No |
Borrar clúster | Sí | No | Sí | Sí | No |
Iniciar/detener clúster | Sí | No | Sí | Sí | No |
Enviar trabajo | Sí | No | Sí3 | Sí3 | No |
Mostrar trabajos | Sí | Sí | Sí | Sí | Sí |
Obtener detalles del trabajo | Sí | Sí | Sí4 | Sí4 | Sí4 |
Cancelar trabajo | Sí | No | Sí | Sí | No |
Borrar trabajos | Sí | No | Sí | Sí | No |
Mostrar lista de operaciones | Sí | Sí | Sí | Sí | Sí |
Obtener detalles de la operación | Sí | Sí | Sí | Sí | Sí |
Borrar operación | Sí | No | Sí | Sí | No |
Notas:
- 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
. - 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
. - 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 bucket de etapa de pruebas para el proyecto.
- 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 en el que se encuentra tu clúster, como crear instancias de VM en el proyecto, Dataproc realiza estas acciones en tu nombre mediante una cuenta de servicio que tiene los permisos necesarios para realizarlas. Para obtener más información, consulta Cuentas de servicio de Dataproc.
Administración de IAM
Puedes obtener y configurar políticas de IAM mediante Google Cloud Console, la API de IAM o la CLI de Google Cloud.
- Para obtener información sobre Google Cloud Console, consulta Control de acceso a través de Google Cloud Console.
- Para la API, consulta Control de acceso a través de la API.
- Para la CLI de Google Cloud, consulta Control de acceso a través de la CLI de Google Cloud.
¿Qué sigue?
- Obtén información sobre los principales y roles de Dataproc.
- Obtén información acerca de la IAM detallada de Dataproc.
- Obtén más información sobre IAM.
- Obtén información sobre las cuentas de servicio en Dataproc.