La administración de identidades y accesos (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 los roles 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, 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 un proyecto.
Por lo general, no otorgas permisos, sino roles, 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 muestran en las siguientes tablas es el proyecto de Google Cloudcontenedor (alcance de cloud-platform). Consulta Permisos de la cuenta de servicio.
Ejemplos:
dataproc.clusters.createpermite la creación de clústeres de Dataproc en el proyecto en el que se otorga.dataproc.jobs.createpermite el envío de trabajos de Dataproc a clústeres de Dataproc en el proyecto que los contiene.dataproc.clusters.listpermite mostrar una lista de detalles de los clústeres de Dataproc en el proyecto en el que se otorga.
Permisos obligatorios para los métodos 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:
- También se requiere el permiso
dataproc.operations.getpara obtener actualizaciones de estado de Google Cloud CLI. - También se requiere el permiso
dataproc.clusters.getpara obtener el resultado de la operación en Google Cloud CLI. dataproc.autoscalingPolicies.usetambién es necesario para habilitar una política de ajuste de escala automático en un clúster.
Permisos obligatorios para los métodos de Jobs
| 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 permiso de
dataproc.jobs.getpara los comandosjobs submit,jobs wait,jobs update,jobs deleteyjobs kill.Gcloud CLI también requiere el permiso
dataproc.clusters.getpara enviar trabajos. Para ver un ejemplo de cómo configurar los permisos necesarios a fin de que un usuario ejecutegcloud dataproc jobs submiten un clúster con la IAM detallada de Dataproc (consulta Envía trabajos con la IAM detallada).
Permisos obligatorios para los métodos 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 necesarios para los métodos 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 clusterosubmit jobpuede crear una instancia de una plantilla de flujo de trabajo.Además, la CLI de Google Cloud requiere el permiso
dataproc.operations.getpara sondear la finalización del flujo de trabajo.El permiso
dataproc.operations.canceles necesario para cancelar un flujo de trabajo en ejecución.
Permisos obligatorios para los métodos 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.usees necesario para habilitar una política de ajuste de escala automático en un clúster con una solicitud del métodoclusters.patch.
Permisos obligatorios para los métodos 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 roles a usuarios o grupos para permitirles realizar acciones en los recursos de Dataproc en un proyecto. Por ejemplo, la función Visualizador de Dataproc contiene los permisos get y 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 enumeran los roles que contienen los permisos necesarios para crear y administrar clústeres de Dataproc.
| Otorga el rol a | Funciones |
|---|---|
| Usuario | Otorga a los usuarios los siguientes roles:
|
| Cuenta de servicio | Otorga a la cuenta de servicio de VM de Dataproc el rol de trabajador de Dataproc. |
Ten en cuenta lo siguiente:
Es posible que debas otorgar 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 desde y hacia Cloud Storage, BigQuery, Cloud Logging y otros recursos de Google Cloud .
En algunos proyectos, es posible que a la cuenta de servicio de VM de Dataproc se le haya otorgado automáticamente el rol de Editor del proyecto, que incluye los permisos del rol de trabajador de Dataproc y permisos adicionales 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 privilegio mínimo, reemplaza el rol de Editor por el rol de Trabajador de Dataproc (consulta Cómo ver los roles de la cuenta de servicio de VM).
¿Necesitas otorgar roles?
Según la política de tu organización, es posible que ya se haya otorgado un rol obligatorio.
Cómo verificar los roles otorgados a los usuarios
Para ver si a un usuario se le otorgó un rol, sigue las instrucciones en Administra el acceso a proyectos, carpetas y organizaciones > Consulta el acceso actual.
Verifica los roles otorgados a las cuentas de servicio
Para ver si se le otorgó un rol a una cuenta de servicio, consulta Cómo ver y administrar los roles de IAM de las cuentas de servicio.
Cómo verificar los roles otorgados en una cuenta de servicio
Para ver si se le otorgó un rol a un usuario en una cuenta de servicio, sigue las instrucciones en Administra el acceso a las cuentas de servicio > Consulta el acceso actual.
Cómo buscar roles y permisos de Dataproc
Puedes 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 recomiendan los permisos de
computepara crear y ver clústeres de Dataproc cuando se usa la Google Cloud consola o gcloud CLI de 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ónStorage Object Viewer. - Un usuario debe tener el permiso
monitoring.timeSeries.listpara ver los gráficos de la pestaña Descripción general en la Google Cloud consola→Dataproc→Detalles del clúster. - Un usuario debe tener el permiso
compute.instances.listpara ver el estado de la instancia y el menú SSH de la instancia principal en la pestaña Instancias de VM deGoogle Cloud consola→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, la cuenta de servicio debe tener todos los permisos que otorga el rol
Dataproc Worker, que incluye el acceso a los buckets de temporales y de 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.
Roles 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 los roles 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 los roles 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 el rol de
Storage Object Creatoro 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.
Permisos de acceso a la VM de Dataproc
Los permisos de acceso a la VM y los roles de IAM trabajan en conjunto para limitar el acceso de la VM a las APIs de Google Cloud. Por ejemplo, si a las VMs del clúster solo se les otorga el permiso https://www.googleapis.com/auth/storage-full, las aplicaciones que se ejecutan en las VMs del clúster pueden llamar a las APIs de Cloud Storage, pero no pueden realizar solicitudes a BigQuery, incluso si se ejecutan como una cuenta de servicio de VM a la que se le otorgó un rol de BigQuery con permisos amplios.
Una práctica recomendada es otorgar el permiso cloud-platform amplio (https://www.googleapis.com/auth/cloud-platform) a las VMs y, luego, limitar el acceso a la VM otorgando roles de IAM específicos a la cuenta de servicio de la VM (consulta Práctica recomendada para los permisos).
Permisos de VM predeterminados de Dataproc. Si no se especifican los permisos cuando se crea un clúster (consulta gcloud dataproc cluster create --scopes), las VMs de Dataproc tienen el siguiente conjunto predeterminado de permisos:
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 permisos cuando creas un clúster, las VM de clúster tendrán los permisos que especifiques y el siguiente conjunto de permisos mínimos necesarios (incluso si no los especificas):
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
Administración de políticas de permisos de IAM
Otorgas roles de IAM a las principales con políticas de permiso. Puedes obtener y configurar políticas de permisos con la consola de Google Cloud , la API de IAM o Google Cloud CLI.
- Para la consola de Google Cloud , consultaControl de acceso con la consola de Google Cloud .
- Para la API, consulta Control de acceso a través de la API.
- Para obtener información sobre 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.