La administración de identidades y accesos (IAM) te permite controlar el acceso de usuarios y grupos a los recursos del proyecto. En este documento, se describen los permisos de IAM relevantes para Managed Service para Apache Spark y los roles de IAM que otorgan esos permisos.
Permisos de Managed Service para Apache Spark
Los permisos de Managed Service para Apache Spark permiten que los usuarios, incluidas las cuentas de servicio, realicen acciones en los clústeres, los trabajos, las operaciones y las plantillas de flujo de trabajo de Managed Service para Apache Spark. Por ejemplo, el permiso dataproc.clusters.create permite que un usuario cree clústeres de Managed Service para Apache Spark en un proyecto.
Por lo general, no otorgas permisos, sino roles, que incluyen uno o más permisos.
En las siguientes tablas, se enumeran los permisos necesarios para llamar a las APIs (métodos) de Managed Service para Apache Spark. Las tablas se organizan según las APIs asociadas a cada recurso de Managed Service para Apache Spark (clústeres, trabajos, operaciones y plantillas de flujo de trabajo).
Alcance de los permisos: El alcance de los permisos de Managed Service para Apache Spark que se muestran en las siguientes tablas es el proyecto de Google Cloudcontenedor (alcance de cloud-platform). Consulta Permisos de la cuenta de servicio.
Ejemplos:
dataproc.clusters.createpermite la creación de clústeres de Managed Service para Apache Spark en el proyecto en el que se otorga.dataproc.jobs.createpermite el envío de trabajos de Managed Service para Apache Spark a clústeres de Managed Service para Apache Spark en el proyecto que los contiene.dataproc.clusters.listpermite mostrar una lista de detalles de los clústeres de Managed Service para Apache Spark en el proyecto en el que se otorga.
Permisos obligatorios para los métodos de clústeres
| Método | Permisos necesarios |
|---|---|
| projects.regions.clusters.create 1, 2 | dataproc.clusters.create |
| projects.regions.clusters.get | dataproc.clusters.get |
| projects.regions.clusters.list | dataproc.clusters.list |
| projects.regions.clusters.patch1, 2, 3 | dataproc.clusters.update |
| projects.regions.clusters.delete1 | dataproc.clusters.delete |
| projects.regions.clusters.start | dataproc.clusters.start |
| projects.regions.clusters.stop | dataproc.clusters.stop |
| projects.regions.clusters.getIamPolicy | dataproc.clusters.getIamPolicy |
| projects.regions.clusters.setIamPolicy | dataproc.clusters.setIamPolicy |
Notas:
- También se requiere el permiso
dataproc.operations.getpara obtener actualizaciones de estado de Google Cloud CLI. - También se requiere el permiso
dataproc.clusters.getpara obtener el resultado de la operación en Google Cloud CLI. dataproc.autoscalingPolicies.usetambién es necesario para habilitar una política de ajuste de escala automático en un clúster.
Permisos obligatorios para los métodos de Jobs
| Método | Permisos necesarios |
|---|---|
| projects.regions.jobs.submit 1, 2 | dataproc.jobs.create dataproc.clusters.use |
| projects.regions.jobs.get | dataproc.jobs.get |
| projects.regions.jobs.list | dataproc.jobs.list |
| projects.regions.jobs.cancel1 | dataproc.jobs.cancel |
| projects.regions.jobs.patch1 | dataproc.jobs.update |
| projects.regions.jobs.delete1 | dataproc.jobs.delete |
| projects.regions.jobs.getIamPolicy | dataproc.jobs.getIamPolicy |
| projects.regions.jobs.setIamPolicy | dataproc.jobs.setIamPolicy |
Notas:
Google Cloud CLI también requiere permiso de
dataproc.jobs.getpara los comandosjobs submit,jobs wait,jobs update,jobs deleteyjobs kill.Gcloud CLI también requiere el permiso
dataproc.clusters.getpara enviar trabajos. Para ver un ejemplo de cómo configurar los permisos necesarios a fin de que un usuario ejecutegcloud dataproc jobs submiten un clúster con la IAM detallada del servicio administrado para Apache Spark (consulta Envía trabajos con la IAM detallada).
Permisos obligatorios para los métodos de operaciones
| Método | Permisos necesarios |
|---|---|
| projects.regions.operations.get | dataproc.operations.get |
| projects.regions.operations.list | dataproc.operations.list |
| projects.regions.operations.cancel | dataproc.operations.cancel |
| projects.regions.operations.delete | dataproc.operations.delete |
| projects.regions.operations.getIamPolicy | dataproc.operations.getIamPolicy |
| projects.regions.operations.setIamPolicy | dataproc.operations.setIamPolicy |
Permisos necesarios para los métodos de plantillas de flujo de trabajo
| Método | Permisos necesarios |
|---|---|
| projects.regions.workflowTemplates.instantiate | dataproc.workflowTemplates.instantiate |
| projects.regions.workflowTemplates.instantiateInline | dataproc.workflowTemplates.instantiateInline |
| projects.regions.workflowTemplates.create | dataproc.workflowTemplates.create |
| projects.regions.workflowTemplates.get | dataproc.workflowTemplates.get |
| projects.regions.workflowTemplates.list | dataproc.workflowTemplates.list |
| projects.regions.workflowTemplates.update | dataproc.workflowTemplates.update |
| projects.regions.workflowTemplates.delete | dataproc.workflowTemplates.delete |
| projects.regions.workflowTemplates.getIamPolicy | dataproc.workflowTemplates.getIamPolicy |
| projects.regions.workflowTemplates.setIamPolicy | dataproc.workflowTemplates.setIamPolicy |
Notas:
Los permisos de la plantilla de flujo de trabajo son independientes de los permisos de trabajo y clúster. Un usuario sin los permisos
create clusterosubmit jobpuede crear una instancia de una plantilla de flujo de trabajo.Además, la CLI de Google Cloud requiere el permiso
dataproc.operations.getpara sondear la finalización del flujo de trabajo.El permiso
dataproc.operations.canceles necesario para cancelar un flujo de trabajo en ejecución.
Permisos obligatorios para los métodos de las políticas de ajuste de escala automático
| Método | Permisos necesarios |
|---|---|
| projects.regions.autoscalingPolicies.create | dataproc.autoscalingPolicies.create |
| projects.regions.autoscalingPolicies.get | dataproc.autoscalingPolicies.get |
| projects.regions.autoscalingPolicies.list | dataproc.autoscalingPolicies.list |
| projects.regions.autoscalingPolicies.update | dataproc.autoscalingPolicies.update |
| projects.regions.autoscalingPolicies.delete | dataproc.autoscalingPolicies.delete |
| projects.regions.autoscalingPolicies.getIamPolicy | dataproc.autoscalingPolicies.getIamPolicy |
| projects.regions.autoscalingPolicies.setIamPolicy | dataproc.autoscalingPolicies.setIamPolicy |
Notas:
dataproc.autoscalingPolicies.usees necesario para habilitar una política de ajuste de escala automático en un clúster con una solicitud del métodoclusters.patch.
Permisos obligatorios para los métodos de grupos de nodos
| Método | Permisos necesarios |
|---|---|
| projects.regions.nodeGroups.create | dataproc.nodeGroups.create |
| projects.regions.nodeGroups.get | dataproc.nodeGroups.get |
| projects.regions.nodeGroups.resize | dataproc.nodeGroups.update |
Roles de Managed Service para Apache Spark
Las funciones de IAM de Managed Service para Apache Spark son un conjunto de uno o más permisos.
Debes otorgar roles a usuarios o grupos para permitirles realizar acciones en los recursos de Managed Service para Apache Spark en un proyecto. Por ejemplo, la función Visualizador de Managed Service para Apache Spark contiene los permisos get y list, que permiten a un usuario obtener y enumerar clústeres, trabajos y operaciones de Managed Service para Apache Spark en un proyecto.
En la siguiente tabla, se enumeran los roles que contienen los permisos necesarios para crear y administrar clústeres de Managed Service para Apache Spark.
| Otorga el rol a | Funciones |
|---|---|
| Usuario | Otorga a los usuarios los siguientes roles:
|
| Cuenta de servicio | Otorga a la cuenta de servicio de VM de Managed Service para Apache Spark el rol de trabajador de Dataproc. |
Ten en cuenta lo siguiente:
Es posible que debas otorgar a la cuenta de servicio de la VM de Managed Service para Apache Spark roles predefinidos o personalizados adicionales que contengan los permisos necesarios para otras operaciones, como leer y escribir datos desde y hacia Cloud Storage, BigQuery, Cloud Logging y otros recursos de Google Cloud .
En algunos proyectos, es posible que a la cuenta de servicio de VM de Managed Service para Apache Spark se le haya otorgado automáticamente el rol de Editor del proyecto, que incluye los permisos del rol de Worker de Managed Service para Apache Spark y permisos adicionales que no son necesarios para las operaciones del plano de datos de Managed Service para Apache Spark. Para seguir el principio de práctica recomendada de seguridad de privilegio mínimo, reemplaza el rol de Editor por el rol de Trabajador de Managed Service for Apache Spark (consulta Cómo ver los roles de la cuenta de servicio de la VM).
¿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 a un usuario se le otorgó un rol, 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.
Consulta los roles y permisos de Managed Service para Apache Spark
Puedes usar la siguiente sección 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. |
|
Notas:
- Se necesitan o recomiendan los permisos de
computepara crear y ver clústeres de Managed Service para Apache Spark cuando se usa la consola de Google Cloud o Google Cloud CLI de gcloud CLI. - Para permitir que un usuario suba archivos, otorga la función
Storage Object Creator. Para permitir que un usuario vea el resultado del trabajo, otorga la funciónStorage Object Viewer. - Un usuario debe tener el permiso
monitoring.timeSeries.listpara ver los gráficos de la pestaña Resumen en la Google Cloud consola→Managed Service para Apache Spark→Detalles del clúster. - Un usuario debe tener el permiso
compute.instances.listpara ver el estado de la instancia y el menú SSH de la instancia principal en la pestaña Instancias de VM de laGoogle Cloud consola→Managed Service para Apache Spark→Detalles del clúster. Para obtener información sobre las funciones de Compute Engine, consulta Compute Engine→Funciones de IAM disponibles. - Para crear un clúster con una cuenta de servicio especificada por el usuario, la cuenta de servicio debe tener todos los permisos que otorga el rol de
Managed Service for Apache Spark Worker, que incluye el acceso a los buckets de etapa de pruebas y temporales de Managed Service para Apache Spark. Es posible que se requieran funciones adicionales según las características configuradas. Consulta Crea un clúster con una cuenta de servicio de VM personalizada para obtener más información.
Roles de proyecto
También puedes establecer permisos a nivel del proyecto mediante las funciones de Proyecto de IAM. En la siguiente tabla, se enumeran 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 |
Resumen de las operaciones de Managed Service para Apache Spark y los roles de IAM
En la siguiente tabla, se enumeran las operaciones de Managed Service para Apache Spark asociadas con los roles de proyecto y de Managed Service para Apache Spark.
| Operación | Editor de proyecto | Visualizador del proyecto | Administrador de Managed Service para Apache Spark | Editor de Managed Service para Apache Spark | Visualizador de Managed Service para Apache Spark |
|---|---|---|---|---|---|
| Obtener o establecer permisos de IAM de Managed Service para Apache Spark | No | No | Sí | No | No |
| Crear clúster | Sí | No | Sí | Sí | No |
| Mostrar clústeres | Sí | Sí | Sí | Sí | Sí |
| Obtener detalles del clúster | Sí | Sí | Sí 1, 2 | Sí 1, 2 | Sí 1, 2 |
| Actualizar clúster | Sí | No | Sí | Sí | No |
| Borrar clúster | Sí | No | Sí | Sí | No |
| Iniciar/detener clúster | Sí | No | Sí | Sí | No |
| Enviar trabajo | Sí | No | Sí3 | Sí3 | No |
| Mostrar trabajos | Sí | Sí | Sí | Sí | Sí |
| Obtener detalles del trabajo | Sí | Sí | Sí4 | Sí4 | Sí4 |
| Cancelar trabajo | Sí | No | Sí | Sí | No |
| Borrar trabajos | Sí | No | Sí | Sí | No |
| Mostrar lista de operaciones | Sí | Sí | Sí | Sí | Sí |
| Obtener detalles de la operación | Sí | Sí | Sí | Sí | Sí |
| Borrar operación | Sí | No | Sí | Sí | No |
Notas:
- El gráfico de rendimiento no está disponible, a menos que el usuario también tenga una función con el permiso
monitoring.timeSeries.list. - La lista de VM del clúster no incluirá información del estado ni un vínculo SSH a la instancia principal, a menos que el usuario también tenga una función con el permiso
compute.instances.list. - Los trabajos que suben archivos requieren que el usuario tenga el rol de
Storage Object Creatoro acceso de escritura al bucket de etapa de pruebas de Managed Service para Apache Spark. - El resultado del trabajo no está disponible, a menos que el usuario también tenga la función de Lector del objeto de Storage o se le haya otorgado acceso de lectura al bucket de etapa de pruebas para el proyecto.
Alcances de acceso a la VM de Managed Service para Apache Spark
Los permisos de acceso a la VM y los roles de IAM trabajan en conjunto para limitar el acceso de la VM a las APIs de Google Cloud. Por ejemplo, si a las VMs del clúster solo se les otorga el permiso https://www.googleapis.com/auth/storage-full, las aplicaciones que se ejecutan en las VMs del clúster pueden llamar a las APIs de Cloud Storage, pero no pueden realizar solicitudes a BigQuery, incluso si se ejecutan como una cuenta de servicio de VM a la que se le otorgó un rol de BigQuery con permisos amplios.
Una práctica recomendada es otorgar el permiso cloud-platform amplio (https://www.googleapis.com/auth/cloud-platform) a las VMs y, luego, limitar el acceso a la VM otorgando roles de IAM específicos a la cuenta de servicio de la VM (consulta Práctica recomendada para los permisos).
Son los permisos predeterminados de la VM de Managed Service para Apache Spark. Si no se especifican los permisos cuando se crea un clúster (consulta gcloud dataproc cluster create --scopes), las VMs de Managed Service para Apache Spark tienen el siguiente conjunto predeterminado de permisos:
https://www.googleapis.com/auth/cloud-platform (clusters created with image version 2.1+).
https://www.googleapis.com/auth/bigquery
https://www.googleapis.com/auth/bigtable.admin.table
https://www.googleapis.com/auth/bigtable.data
https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.full_control
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write
Si especificas permisos cuando creas un clúster, las VM de clúster tendrán los permisos que especifiques y el siguiente conjunto de permisos mínimos necesarios (incluso si no los especificas):
https://www.googleapis.com/auth/cloud-platform (clusters created with image version 2.1+).
https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write
Administración de políticas de permisos de IAM
Otorgas roles de IAM a las entidades con políticas de permiso. Puedes obtener y configurar políticas de permisos con la consola de Google Cloud , la API de IAM o Google Cloud CLI.
- Para la consola de Google Cloud , consultaControl de acceso con la consola de Google Cloud .
- Para la API, consulta Control de acceso a través de la API.
- Para obtener información sobre Google Cloud CLI, consulta Control de acceso con Google Cloud CLI.
¿Qué sigue?
- Obtén información sobre los principales y roles de Managed Service para Apache Spark
- Más información sobre la IAM detallada de Managed Service para Apache Spark
- Obtén más información sobre IAM.
- Más información sobre las cuentas de servicio en Managed Service para Apache Spark