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 los clústeres, trabajos, operaciones y plantillas de flujo de trabajo de Dataproc. Por ejemplo, el permiso dataproc.clusters.create
permite que un usuario cree clústeres de Dataproc en un proyecto.
Por lo general, no se otorgan permisos, 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 Google Cloud CLI. - También se requiere el permiso
dataproc.clusters.get
para obtener el resultado de la operación de Google Cloud CLI. 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:
Google Cloud CLI también requiere el permiso
dataproc.jobs.get
para los comandosjobs submit
,jobs wait
,jobs update
,jobs delete
yjobs kill
.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 ejecutegcloud dataproc jobs submit
en un clúster 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 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:
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, Google Cloud CLI 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
.
Permisos de los 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
ydelete
, que son los únicos permisos relacionados condataproc.operations.
. - Los permisos de
compute
enumerados anteriormente son necesarios o recomendados para crear y ver clústeres de Dataproc cuando se usa la consola de Google Cloud o Google Cloud CLI de gcloud. - 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
. Si se otorga cualquiera de estas funciones de Cloud Storage, el usuario podrá acceder a cualquier bucket del proyecto. - Un usuario debe tener el permiso
monitoring.timeSeries.list
para ver los gráficos 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 en la consola de Google Cloud→Dataproc→Detalles del clúster. Para obtener información sobre las funciones de Compute Engine, consulta Compute Engine→Roles 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 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 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
En la siguiente tabla, se enumeran las operaciones de Dataproc asociadas con 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 | 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 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. - 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 APIs de Dataproc para realizar acciones en un proyecto, como crear instancias de VM, Dataproc realiza las acciones en tu nombre con 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 establecer políticas de IAM con la consola de Google Cloud, la API de IAM o Google Cloud CLI.
- Para obtener información sobre la consola de Google Cloud, consulta Control de acceso con la consola de Google Cloud.
- Para la API, consulta Control de acceso mediante la API.
- Para Google Cloud CLI, consulta Control de acceso con Google Cloud CLI.
¿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.