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 Serverless para Apache Spark y los roles 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 para Apache Spark. Por ejemplo, el permiso dataproc.batches.create te permite crear cargas de trabajo por lotes en un proyecto.
No se les otorgan permisos a los usuarios directamente, sino roles de IAM, que incluyen uno o más permisos. 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 (métodos) de Dataproc que crean recursos de Serverless para Apache Spark o acceden a ellos. 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 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 los permisos dataproc.batches.get y dataproc.operations.get 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 los permisos dataproc.sessions.get y dataproc.operations.get 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 los permisos dataproc.sessionTemplates.get y dataproc.operations.get 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 el permiso dataproc.batches.cancel.
Permisos de tiempo de ejecución de Serverless for Apache Spark 3.0 y versiones posteriores
Los siguientes permisos se aplican a los tiempos 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 roles de Serverless for Apache Spark
En la siguiente tabla, se enumeran los roles 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 del lote o la sesión, y si el lote o la sesión se ejecutan 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 los siguientes roles:
|
Más de 3.0 |
Otorga a los usuarios los siguientes roles:
|
Notas:
Cuando envías una carga de trabajo por lotes o creas una sesión interactiva con un entorno de ejecución de
3.0+y credenciales de usuario final (la configuración predeterminada de la versión 3.0 y posteriores), el agente del servicio de nodos del 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 y versiones posteriores.Para garantizar la retrocompatibilidad, los roles heredados de editor de Dataproc y lector de Dataproc se pueden otorgar con tiempos de ejecución de
3.0+en lugar de los roles de editor de Dataproc Serverless y lector de Dataproc Serverless. Además, se puede otorgar el rol de Trabajador de Dataproc en lugar del rol de Nodo de Dataproc Serverless.Si a una cuenta de servicio se le otorgó el rol de Editor del proyecto, esta contiene los permisos incluidos en el rol de Trabajador de Dataproc.
Para obtener más información, consulta Cuentas de servicio de Serverless for Apache Spark.
¿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 se le otorgó un rol a un usuario, 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 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. |
|
Funciones de proyecto
También puedes establecer permisos a nivel del proyecto con las funciones de Proyecto de IAM. En la siguiente tabla, se resumen 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 |
¿Qué sigue?
- Obtén más información para administrar el acceso a proyectos, carpetas y organizaciones.