Identity and Access Management (IAM) te permite controlar el acceso a los recursos de tu proyecto. En este documento, se describen los permisos de IAM relevantes para las implementaciones sin servidores de Managed Service para Apache Spark y las funciones de IAM que otorgan esos permisos.
Permisos de Managed Service para Apache Spark sin servidores
Los permisos de Managed Service para Apache Spark permiten que los usuarios y
las cuentas de servicio,
realicen acciones en los recursos de Managed Service para Apache Spark. Por ejemplo, el permiso dataproc.batches.create te permite crear cargas de trabajo por lotes en un proyecto.
No otorgas permisos directamente a los usuarios. En cambio, les otorgas funciones de IAM, que tienen uno o más permisos agrupados en ellas. Puedes otorgar roles predefinidos que contengan una lista de permisos, o bien crear y otorgar roles personalizados que contengan uno o más permisos que incluyas en el rol personalizado.
En las siguientes tablas, se enumeran los permisos básicos necesarios para llamar a las APIs de Dataproc (métodos) que crean o acceden a los recursos de Managed Service para Apache Spark. Las tablas se organizan según las APIs asociadas con cada recurso de Managed Service para Apache Spark, que incluyen batches, sessions, sessionTemplates y operations.
Ejemplos:
dataproc.batches.createpermite la creación de lotes en el proyecto contenedor.dataproc.sessions.createpermite la creación de sesiones interactivas en el proyecto contenedor.
Permisos por lotes
| Método | Permisos necesarios |
|---|---|
| projects.locations.batches.create | dataproc.batches.create 1 |
| projects.locations.batches.delete | dataproc.batches.delete |
| projects.locations.batches.get | dataproc.batches.get |
| projects.locations.batches.list | dataproc.batches.list |
1 dataproc.batches.create también requiere dataproc.batches.get y
dataproc.operations.get permisos para permitirle obtener actualizaciones de estado
de la herramienta de línea de comandos de gcloud.
Permisos de sesión
| Método | Permisos necesarios |
|---|---|
| projects.locations.sessions.create | dataproc.sessions.create 1 |
| projects.locations.sessions.delete | dataproc.sessions.delete |
| projects.locations.sessions.get | dataproc.sessions.get |
| projects.locations.sessions.list | dataproc.sessions.list |
| projects.locations.sessions.terminate | dataproc.sessions.terminate |
1 dataproc.sessions.create también requiere dataproc.sessions.get y
dataproc.operations.get permisos para permitirle obtener actualizaciones de estado
de la herramienta de línea de comandos de gcloud.
Permisos de plantilla de sesión
| Método | Permisos necesarios |
|---|---|
| projects.locations.sessionTemplates.create | dataproc.sessionTemplates.create 1 |
| projects.locations.sessionTemplates.delete | dataproc.sessionTemplates.delete |
| projects.locations.sessionTemplates.get | dataproc.sessionTemplates.get |
| projects.locations.sessionTemplates.list | dataproc.sessionTemplates.list |
| projects.locations.sessionTemplates.update | dataproc.sessionTemplates.update |
1 dataproc.sessionTemplates.create también requiere dataproc.sessionTemplates.get y
dataproc.operations.get permisos para permitirle obtener actualizaciones de estado
de la herramienta de línea de comandos de gcloud.
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 1 | dataproc.operations.cancel |
| projects.regions.operations.delete | dataproc.operations.delete |
| projects.regions.operations.getIamPolicy | dataproc.operations.getIamPolicy |
| projects.regions.operations.setIamPolicy | dataproc.operations.setIamPolicy |
1 Para cancelar operaciones por lotes, dataproc.operations.cancel también requiere
dataproc.batches.cancel permiso.
Permisos de entorno de ejecución de Managed Service para Apache Spark 3.0 y versiones posteriores
Los siguientes permisos se aplican a los entornos de ejecución de Managed Service para Apache Spark 3.0 y versiones posteriores.
Permisos de cargas de trabajo
| Método | Permisos necesarios |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.workloads.create | dataprocrm.workloads.create |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.cancel | dataprocrm.workloads.cancel |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.delete | dataprocrm.workloads.delete |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.get | dataprocrm.workloads.get |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.list | dataprocrm.workloads.list |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.use | dataprocrm.workloads.use |
Permisos de NodePools
| Método | Permisos necesarios |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.create | dataprocrm.nodePools.create |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.delete | dataprocrm.nodePools.delete |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.resize | dataprocrm.nodePools.resize |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.deleteNodes | dataprocrm.nodePools.deleteNodes |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.update | dataprocrm.nodePools.update |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.get | dataprocrm.nodePools.get |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.list | dataprocrm.nodePools.list |
Permisos de nodos
| Método | Permisos necesarios |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.create | dataprocrm.nodes.create |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.delete | dataprocrm.nodes.delete |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.update | dataprocrm.nodes.update |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.heartbeat | dataprocrm.nodes.heartbeat |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.get | dataprocrm.nodes.get |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.list | dataprocrm.nodes.list |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.mintOAuthToken | dataprocrm.nodes.mintOAuthToken |
Permisos de operaciones
| Método | Permisos necesarios |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.operations.get | dataprocrm.operations.get |
| dataprocrm.v1.dataprocrm.projects.locations.operations.list | dataprocrm.operations.list |
Requisitos de funciones de Managed Service para Apache Spark
En la siguiente tabla, se enumeran las funciones que contienen los permisos necesarios para administrar las cargas de trabajo y las sesiones por lotes. Los requisitos dependen de la versión del entorno de ejecución por lotes o de sesión .
| Versión de entorno de ejecución | Funciones de IAM |
|---|---|
pre-3.0 |
Otorga a los usuarios las siguientes funciones:
|
3.0 y versiones posteriores |
Otorga a los usuarios las siguientes funciones:
|
Notas:
Cuando se habilita la función de credenciales de usuario final (EUC) de Managed Service para Apache Spark, se usa la identidad del usuario (credenciales) para enviar cargas de trabajo por lotes, crear sesiones interactivas y ejecutar operaciones del plano de datos, como el acceso a Cloud Storage y BigQuery desde la aplicación Spark por lotes o de sesión.
Cuando se habilita EUC en los entornos de ejecución
3.0+, que es el valor predeterminado de3.0+, las operaciones del sistema del plano de datos se ejecutan mediante la cuenta de servicio del agente de servicio del nodo del Resource Manager de Managed Service para Apache Spark, y al usuario se le otorga automáticamente el permisoactAsen esta cuenta de servicio.Cuando se habilita EUC en los entornos de ejecución anteriores a
3.0(las credenciales de la cuenta de servicio son el valor predeterminado anterior a3.0), las operaciones del sistema del plano de datos se ejecutan mediante la cuenta de servicio predeterminada de Compute Engine o una cuenta de servicio personalizada. Se debe otorgar al usuario el permisoactAsen esta cuenta de servicio.Para la retrocompatibilidad, las funciones heredadas de Editor de Dataproc y Visualizador de Dataproc se pueden otorgar con entornos de ejecución
3.0+en lugar de las funciones de Editor de Dataproc Serverless y Visualizador de Dataproc Serverless. Además, se puede otorgar la función de Trabajador de Dataproc en lugar de la función de Nodo de Dataproc Serverless.Si a una cuenta de servicio se le otorgó la función de Editor del proyecto, contiene los permisos incluidos en la función de Trabajador de Dataproc.
Para obtener más información sobre las cuentas de servicio de Managed Service para Apache Spark, consulta Cuentas de servicio de Serverless para Apache Spark.
¿Necesitas otorgar funciones?
Según la política de tu organización, es posible que ya se haya otorgado una función obligatoria.
Verifica las funciones otorgadas a los usuarios
Para ver si se otorgó un rol a un usuario, sigue las instrucciones en Administra el acceso a proyectos, carpetas y organizaciones > Visualiza el acceso actual.
Verifica las funciones otorgadas a las cuentas de servicio
Para ver si se otorgó una función a una cuenta de servicio, consulta Visualiza y administra las funciones de IAM de la cuenta de servicio.
Verifica las funciones otorgadas en una cuenta de servicio
Para ver si se otorgó un rol a un usuario en una cuenta de servicio, sigue las instrucciones en Administra el acceso a las cuentas de servicio > Visualiza el acceso actual.
Busca funciones y permisos
Puedes usar las siguientes secciones para buscar funciones y permisos de Managed Service para Apache Spark.
| Role | Permissions |
|---|---|
Dataproc Administrator( Full control of Dataproc resources. |
|
Dataproc Editor( Provides the permissions necessary for viewing the resources required to manage Managed Service for Apache Spark, including machine types, networks, projects, and zones. Lowest-level resources where you can grant this role:
|
|
Dataproc Viewer( Provides read-only access to Managed Service for Apache Spark resources. 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 Worker( Provides worker access to Managed Service for Apache Spark resources. Intended for service accounts. |
|
Service agent roles
Service agent roles should only be granted to service agents.
| Role | Permissions |
|---|---|
Dataproc Service Agent( Gives Dataproc Service Account access to service accounts, compute resources, storage resources, and kubernetes resources. Includes access to service accounts. |
|
Funciones de proyecto
También puedes configurar permisos a nivel del proyecto con las funciones de Proyecto de IAM. En la siguiente tabla, se resumen 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 |
¿Qué sigue?
- Obtén información para administrar el acceso a proyectos, carpetas y organizaciones.