Identity and Access Management (IAM) vous permet de contrôler l'accès aux ressources de votre projet. Ce document met l'accent sur les autorisations IAM pertinentes pour les déploiements sans serveur de Managed Service pour Apache Spark et sur les rôles IAM qui accordent ces autorisations.
Autorisations Managed Service pour Apache Spark sans serveur
Les autorisations Managed Service pour Apache Spark permettent aux utilisateurs et
aux comptes de service,
d'effectuer des actions sur les ressources Managed Service pour Apache Spark. Par exemple, l'autorisation dataproc.batches.create vous permet de créer des charges de travail par lot dans un projet.
Vous n'accordez pas directement d'autorisations aux utilisateurs. Vous leur attribuez plutôt des rôles IAM, qui contiennent une ou plusieurs autorisations. Vous pouvez attribuer des rôles prédéfinis qui contiennent une liste d'autorisations, ou créer et attribuer des rôles personnalisés qui contiennent une ou plusieurs autorisations que vous incluez dans le rôle personnalisé.
Les tableaux suivants répertorient les autorisations de base nécessaires pour appeler les API (méthodes) Dataproc qui créent ou accèdent aux ressources Managed Service pour Apache Spark. Les tableaux sont organisés en fonction des API associées à chaque ressource Managed Service pour Apache Spark, qui incluent batches, sessions, sessionTemplates et operations.
Exemples :
dataproc.batches.createpermet de créer des lots dans le projet associé.dataproc.sessions.createpermet de créer des sessions interactives dans le projet associé.
Autorisations par lot
| Méthode | Autorisations requises |
|---|---|
| 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 nécessite également les autorisations dataproc.batches.get et
dataproc.operations.get pour pouvoir obtenir des mises à jour de l'état
à partir de l'outil de ligne de commande gcloud.
Autorisations de session
| Méthode | Autorisations requises |
|---|---|
| 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 nécessite également les autorisations dataproc.sessions.get et
dataproc.operations.get pour pouvoir obtenir des mises à jour de l'état
à partir de l'outil de ligne de commande gcloud.
Autorisations de modèle de session
| Méthode | Autorisations requises |
|---|---|
| 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 nécessite également les autorisations dataproc.sessionTemplates.get et
dataproc.operations.get pour pouvoir obtenir des mises à jour de l'état
à partir de l'outil de ligne de commande gcloud.
Autorisations d'opérations
| Méthode | Autorisations requises |
|---|---|
| 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 Pour annuler des opérations par lot, dataproc.operations.cancel nécessite également
dataproc.batches.cancel l'autorisation.
Autorisations d'exécution Managed Service pour Apache Spark 3.0 et versions ultérieures
Les autorisations suivantes s'appliquent aux exécutions Managed Service pour Apache Spark 3.0 et versions ultérieures.
Autorisations pour les charges de travail
| Méthode | Autorisations requises |
|---|---|
| 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 |
Autorisations NodePools
| Méthode | Autorisations requises |
|---|---|
| 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 |
Autorisations des nœuds
| Méthode | Autorisations requises |
|---|---|
| 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 |
Autorisations d'opérations
| Méthode | Autorisations requises |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.operations.get | dataprocrm.operations.get |
| dataprocrm.v1.dataprocrm.projects.locations.operations.list | dataprocrm.operations.list |
Exigences de rôle Managed Service pour Apache Spark
Le tableau suivant répertorie les rôles contenant les autorisations requises pour gérer les charges de travail et les sessions par lot. Les exigences dépendent de la version d'exécution du lot ou de la session .
| Version d'exécution | Rôles IAM |
|---|---|
pre-3.0 |
Attribuez les rôles suivants aux utilisateurs :
|
3.0 et versions ultérieures |
Attribuez les rôles suivants aux utilisateurs :
|
Remarques :
Lorsque la fonctionnalité d'identifiants de l'utilisateur final (EUC) de Managed Service pour Apache Spark est activée, l'identité (les identifiants) de l'utilisateur est utilisée pour envoyer des charges de travail par lot, créer des sessions interactives et exécuter des opérations de plan de données telles que l'accès à Cloud Storage et BigQuery à partir de l'application Spark par lot ou de session.
Lorsque les EUC sont activés dans les exécutions
3.0+ (qui sont les valeurs par défaut pour3.0+), les opérations système du plan de données sont exécutées par le compte de service de l'agent de service du nœud du gestionnaire de ressources Managed Service pour Apache Spark , et l'autorisationactAsest automatiquement accordée à l'utilisateur sur ce compte de service.Lorsque les EUC sont activés dans les exécutions antérieures à
3.0, (les identifiants du compte de service sont les valeurs par défaut pour les exécutions antérieures à3.0), les opérations système du plan de données sont exécutées par le compte de service Compute Engine par défaut ou par un compte de service personnalisé. L'autorisationactAsdoit être accordée à l'utilisateur sur ce compte de service.Pour assurer la rétrocompatibilité, les anciens rôles Éditeur Dataproc et Lecteur Dataproc peuvent être attribués avec les exécutions
3.0+au lieu des rôles Éditeur Dataproc sans serveur et Lecteur Dataproc sans serveur. De même, le rôle Nœud de calcul Dataproc peut être attribué à la place du rôle Nœud Dataproc sans serveur.Si le rôle Éditeur a été attribué à un compte de service au niveau du projet, il contient les autorisations incluses dans le rôle Nœud de calcul Dataproc.
Pour en savoir plus sur les comptes de service Managed Service pour Apache Spark, consultez Comptes de service Serverless pour Apache Spark.
Devez-vous attribuer des rôles ?
En fonction de la règle de votre organisation, un rôle requis peut déjà avoir été attribué.
Vérifier les rôles attribués aux utilisateurs
Pour vérifier si un rôle a été attribué à un utilisateur, suivez les instructions de la section Gérer l'accès aux projets, aux dossiers et aux organisations > Afficher l'accès actuel.
Vérifier les rôles attribués aux comptes de service
Pour vérifier si un rôle a été attribué à un compte de service, consultez Afficher et gérer les rôles IAM des comptes de service.
Vérifier les rôles attribués à un compte de service
Pour vérifier si un rôle a été attribué à un utilisateur sur un compte de service, suivez les instructions de la section Gérer l'accès aux comptes de service > Afficher l'accès actuel.
Rechercher des rôles et des autorisations
Vous pouvez utiliser les sections suivantes pour rechercher les rôles et autorisations Managed Service pour 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. |
|
Rôles au niveau du projet
Vous pouvez également définir des autorisations au niveau du projet à l'aide des rôles IAM Projet. Le tableau suivant récapitule les autorisations associées aux rôles de projet IAM :
| Rôle de projet | Autorisations |
|---|---|
| Lecteur de projets | Toutes les autorisations de projet pour les actions en lecture seule préservant l'état (get, list) |
| Éditeur de projet | Toutes les autorisations lecteur de projet, ainsi que toutes les autorisations de projet pour les actions qui modifient l'état (créer, supprimer, mettre à jour, utiliser, annuler, arrêter, démarrer) |
| Propriétaire du projet | Toutes les autorisations de l'éditeur de projet, ainsi que celles permettant de gérer le contrôle des accès au projet (get/set IamPolicy) et de configurer la facturation du projet |
Étape suivante
- Découvrez comment gérer l'accès aux projets, aux dossiers et aux organisations.