Gestión de Identidades y Accesos (IAM) te permite controlar el acceso a los recursos de tu proyecto. Este documento se centra en los permisos de gestión de identidades y accesos relevantes para Serverless para Apache Spark y en los roles de gestión de identidades y accesos que conceden esos permisos.
Permisos de Dataproc para Serverless para Apache Spark
Los permisos de Dataproc permiten que los usuarios y las cuentas de servicio realicen acciones en los recursos de Serverless para Apache Spark. Por ejemplo, el permiso dataproc.batches.create
te permite crear cargas de trabajo por lotes en un proyecto.
No se otorgan permisos directamente a los usuarios, sino que se les asignan roles de gestión de identidades y accesos, que incluyen uno o varios permisos. Puedes conceder roles predefinidos que contengan una lista de permisos, o bien crear y conceder roles personalizados que contengan uno o varios permisos que incluyas en el rol personalizado.
En las siguientes tablas se indican los permisos básicos necesarios para llamar a las APIs (métodos) de Dataproc que crean o acceden a recursos de Serverless para Apache Spark. Las tablas se organizan según las APIs asociadas a cada recurso de Serverless para Apache Spark, que incluyen batches, sessions, sessionTemplates y operations.
Ejemplos:
dataproc.batches.createpermite crear lotes en el proyecto que lo contiene.dataproc.sessions.createpermite crear sesiones interactivas en el proyecto contenedor.
Permisos por lotes
| Método | Permisos obligatorios |
|---|---|
| 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 los permisos dataproc.batches.get y
dataproc.operations.get para poder obtener actualizaciones de estado
de la herramienta de línea de comandos gcloud.
Permisos de sesión
| Método | Permisos obligatorios |
|---|---|
| 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 los permisos dataproc.sessions.get y
dataproc.operations.get para poder obtener actualizaciones de estado
de la herramienta de línea de comandos gcloud.
Permisos de plantillas de sesión
| Método | Permisos obligatorios |
|---|---|
| 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 los permisos dataproc.sessionTemplates.get y
dataproc.operations.get para poder obtener actualizaciones de estado
de la herramienta de línea de comandos gcloud.
Permisos de operaciones
| Método | Permisos obligatorios |
|---|---|
| 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 el permiso dataproc.batches.cancel.
Permisos de tiempo de ejecución de Serverless para Apache Spark 3.0 y versiones posteriores
Los siguientes permisos se aplican a Serverless para Apache Spark 3.0 y a los tiempos de ejecución posteriores.
Permisos de cargas de trabajo
| Método | Permisos obligatorios |
|---|---|
| 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 obligatorios |
|---|---|
| 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 obligatorios |
|---|---|
| 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 obligatorios |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.operations.get | dataprocrm.operations.get |
| dataprocrm.v1.dataprocrm.projects.locations.operations.list | dataprocrm.operations.list |
Requisitos de los roles de Serverless para Apache Spark
En la siguiente tabla se enumeran los roles que contienen los permisos necesarios para gestionar cargas de trabajo y sesiones por lotes. Los requisitos pueden variar en función de la versión de tiempo de ejecución del lote o de la sesión, y de si el lote o la sesión se ejecutan con credenciales de cuenta de servicio o de usuario final.
| Versión de tiempo de ejecución | Roles de gestión de identidades y accesos |
|---|---|
pre-3.0 |
Asigna a los usuarios los siguientes roles:
|
Más de 3.0 |
Asigna a los usuarios los siguientes roles:
|
Notas:
Cuando se envía una carga de trabajo por lotes o se crea una sesión interactiva con el tiempo de ejecución de
3.0+y las credenciales del usuario final (el valor predeterminado de la versión 3.0 o posterior), el agente de servicio de nodo de Resource Manager 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 de tiempo de ejecución 3.0 o versiones posteriores.Para mantener la compatibilidad con versiones anteriores, los roles antiguos Editor de Dataproc y Lector de Dataproc se pueden asignar con tiempos de ejecución de
3.0+en lugar de los roles Editor de Dataproc Serverless y Lector de Dataproc Serverless. También se puede asignar el rol Dataproc Worker en lugar del rol Dataproc Serverless Node.Si a una cuenta de servicio se le ha asignado el rol Editor del proyecto, esta cuenta tendrá los permisos incluidos en el rol Trabajador de Dataproc.
Para obtener más información, consulta Cuentas de servicio de Serverless para Apache Spark.
¿Necesitas conceder roles?
Según la política de tu organización, es posible que ya se haya concedido un rol obligatorio.
Consultar los roles concedidos a los usuarios
Para ver si se ha concedido un rol a un usuario, sigue las instrucciones que se indican en Gestionar acceso a proyectos, carpetas y organizaciones > Ver el acceso actual.
Comprobar los roles concedidos a cuentas de servicio
Para ver si se ha concedido un rol a una cuenta de servicio, consulta Ver y gestionar roles de cuenta de servicio de gestión de identidades y accesos.
Comprobar los roles concedidos en una cuenta de servicio
Para ver si se ha concedido un rol a un usuario en una cuenta de servicio, sigue las instrucciones que se indican en Gestionar el acceso a cuentas de servicio > Ver el acceso actual.
Buscar roles y permisos de Dataproc
Puede usar las siguientes secciones 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. |
|
Roles de proyecto
También puedes definir permisos a nivel de proyecto mediante los roles de proyecto de gestión de identidades y accesos. En la siguiente tabla se resumen los permisos asociados a los roles de proyecto de gestión de identidades y accesos:
| Rol de proyecto | Permisos |
|---|---|
| Lector del proyecto | Todos los permisos de proyecto para acciones de solo lectura que conservan el estado (get y list) |
| Editor del proyecto | Todos los permisos de lector de proyectos, además de todos los permisos de proyectos para realizar acciones que modifiquen el estado (crear, eliminar, actualizar, usar, cancelar, detener e iniciar) |
| Propietario del proyecto | Todos los permisos de editor de proyectos, además de los permisos para gestionar el control de acceso del proyecto (get/set IamPolicy) y para configurar la facturación del proyecto |
Siguientes pasos
- Consulta cómo gestionar el acceso a proyectos, carpetas y organizaciones.