La administración de identidades y accesos (IAM) te permite controlar el acceso a los recursos de tu proyecto. En este documento, se describen los permisos de IAM relevantes para Serverless for Apache Spark y las funciones de IAM que otorgan esos permisos.
Permisos de Dataproc para Serverless for Apache Spark
Los permisos de Dataproc permiten que los usuarios y las
cuentas de servicio,
realicen acciones en los recursos de Serverless for Apache Spark. Por ejemplo, el dataproc.batches.create
permiso te permite crear cargas de trabajo por lotes en un proyecto.
No se otorgan permisos a los usuarios directamente, sino funciones de IAM, que incluyen uno o más permisos. Puedes otorgar funciones predefinidas que contengan una lista de permisos, o bien crear y otorgar funciones personalizadas que contengan uno o más permisos que incluyas en la función personalizada.
En las siguientes tablas, se enumeran los permisos básicos necesarios para llamar a las
APIs de Dataproc (métodos) que crean recursos de Serverless para Apache Spark
o acceden a ellos. Las tablas se organizan según las APIs asociadas con cada
recurso de Serverless for Apache Spark, que incluyen batches, sessions,
sessionTemplates y operations.
Ejemplos:
dataproc.batches.createpermite la creación de lotes en el proyecto en el que se otorga.dataproc.sessions.createpermite la creación de sesiones interactivas en el proyecto en el que se otorga.
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 Serverless for Apache Spark 3.0 y versiones posteriores
Los siguientes permisos se aplican a los entornos de ejecución de Serverless for 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 Serverless for 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 pueden variar según la versión del entorno de ejecución por lotes o de sesión y si el lote o la sesión se ejecuta con credenciales de cuenta de servicio o de usuario final (EUC).
| Versión de entorno de ejecución | Funciones de IAM |
|---|---|
pre-3.0 |
Otorga a los usuarios las siguientes funciones:
|
3.0 o versiones posteriores |
Otorga a los usuarios las siguientes funciones:
|
Notas:
Cuando se envía una carga de trabajo por lotes o se crea una sesión interactiva con un entorno de ejecución
3.0+y credenciales de usuario final (el valor predeterminado de 3.0 o versiones posteriores), el agente de servicio de nodo de administrador de recursos de Dataproc ejecuta las operaciones del sistema del plano de datos. Para obtener más información, consulta Cuenta de servicio del agente de servicio del entorno de ejecución 3.0 o versiones posteriores.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, consulta Cuentas de servicio de Serverless for 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 a un usuario se le otorgó una función, 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 a una cuenta de servicio se le otorgó una función, 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 a un usuario se le otorgó una función 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 de Dataproc
Puedes usar las siguientes secciones para buscar funciones 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. |
|
Funciones dentro del proyecto
También puedes configurar permisos a nivel del proyecto con las funciones de IAM Proyecto. 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.