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 los roles de IAM que otorgan esos permisos.
Permisos sin servidores de Managed Service para Apache Spark
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 se 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 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 de Batch
| 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 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 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 la 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 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 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
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 |
Roles de implementaciones sin servidores de Managed Service para 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 de 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 | Roles 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 el entorno de ejecución
3.0+y las credenciales del usuario final (el valor predeterminado de la versión 3.0 o posterior), las operaciones del sistema del plano de datos las ejecuta el agente de servicio de nodo de Dataproc Resource Manager. Para obtener más información, consulta Cuenta de servicio del agente de servicio del entorno de ejecución 3.0 o posterior.Para la retrocompatibilidad, se pueden otorgar los roles heredados de editor de Dataproc y visualizador de Dataproc con entornos de ejecución de
3.0+en lugar de los roles de editor de Dataproc Serverless y visualizador 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 para Apache Spark.
¿Necesitas otorgar roles?
Según la política de la organización, es posible que ya se haya otorgado un rol obligatorio.
Verifica los roles otorgados a los usuarios
Para ver si se le otorgó un rol a un usuario, sigue las instrucciones que se indican 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 otorgó un rol a una cuenta de servicio, consulta Visualiza y administra los roles de la cuenta de servicio de IAM.
Verifica 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 que se indican en Administra el acceso a las cuentas de servicio > Consulta el acceso actual.
Busca roles y permisos
Puedes usar las siguientes secciones para buscar roles 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. |
|
Roles de proyecto
También puedes establecer permisos a nivel de proyecto con los roles de IAM Proyecto. En la siguiente tabla, se resumen los permisos asociados con los roles de IAM del proyecto:
| 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.