La gestion de l'authentification et des accès (IAM) vous permet de contrôler l'accès des utilisateurs et des groupes aux ressources de votre projet. Ce document met l'accent sur les autorisations IAM pertinentes pour Managed Service for Apache Spark et sur les rôles IAM qui accordent ces autorisations.
Autorisations Managed Service pour Apache Spark
Les autorisations Managed Service pour Apache Spark permettent aux utilisateurs, y compris aux comptes de service, d'effectuer des actions sur les clusters, les tâches, les opérations et les modèles de workflow Managed Service pour Apache Spark. Par exemple, l'autorisation dataproc.clusters.create permet à un utilisateur de créer des clusters Managed Service for Apache Spark dans un projet.
En règle générale, vous n'accordez pas d'autorisations, mais des rôles qui incluent une ou plusieurs autorisations.
Les tableaux ci-dessous répertorient les autorisations nécessaires pour appeler les API (méthodes) Managed Service for Apache Spark. Ils sont organisés en fonction des API associées à chaque ressource Managed Service pour Apache Spark (clusters, tâches, opérations et modèles de workflow).
Champ d'application des autorisations : le champ d'application des autorisations Managed Service for Apache Spark répertoriées dans les tableaux suivants correspond au projet Google Cloudcontenant ces autorisations (champ d'application cloud-platform). Consultez la section Autorisations de compte de service.
Exemples :
dataproc.clusters.createpermet de créer des clusters Managed Service for Apache Spark dans le projet associé.dataproc.jobs.createpermet d'envoyer des jobs Managed Service pour Apache Spark aux clusters Managed Service pour Apache Spark dans le projet associé.dataproc.clusters.listpermet de répertorier les détails des clusters Managed Service for Apache Spark dans le projet associé.
Autorisations requises pour les méthodes de clusters
| Méthode | Autorisations requises |
|---|---|
| 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.patch 1, 2, 3 | dataproc.clusters.update |
| projects.regions.clusters.delete 1 | 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 |
Remarques :
- L'autorisation
dataproc.operations.getest également requise pour obtenir les mises à jour de l'état à partir de Google Cloud CLI. - L'autorisation
dataproc.clusters.getest également requise pour obtenir le résultat de l'opération à partir de Google Cloud CLI. - L'autorisation
dataproc.autoscalingPolicies.useest également requise pour activer une règle d'autoscaling sur un cluster.
Autorisations requises pour les méthodes Jobs
| Méthode | Autorisations requises |
|---|---|
| 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.cancel 1 | dataproc.jobs.cancel |
| projects.regions.jobs.patch 1 | dataproc.jobs.update |
| projects.regions.jobs.delete 1 | dataproc.jobs.delete |
| projects.regions.jobs.getIamPolicy | dataproc.jobs.getiamPolicy |
| projects.regions.jobs.setIamPolicy | dataproc.jobs.setiamPolicy |
Remarques :
Google Cloud CLI nécessite également l'autorisation
dataproc.jobs.getpour les commandesjobs submit,jobs wait,jobs update,jobs deleteetjobs kill.gcloud CLI requiert également l'autorisation
dataproc.clusters.getpour envoyer des tâches. Pour obtenir un exemple de définition des autorisations dont un utilisateur doit disposer pour pouvoir exécutergcloud dataproc jobs submitsur un cluster avec l'IAM précise Managed Service for Apache Spark, consultez la section Envoyer des tâches avec l'IAM précise.
Autorisations requises pour les méthodes 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 | dataproc.operations.cancel |
| projects.regions.operations.delete | dataproc.operations.delete |
| projects.regions.operations.getIamPolicy | dataproc.operations.getiamPolicy |
| projects.regions.operations.setIamPolicy | dataproc.operations.setiamPolicy |
Autorisations requises pour les méthodes de modèles de workflow
| Méthode | Autorisations requises |
|---|---|
| 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 |
Notes :
Les autorisations des modèles de flux de travail sont indépendantes des autorisations de clusters et de tâches. Un utilisateur qui ne dispose pas des autorisations
create clusterousubmit jobpeut créer et instancier un modèle de workflow.La Google Cloud CLI requiert également l'autorisation
dataproc.operations.getpour interroger l'achèvement du workflow.L'autorisation
dataproc.operations.cancelest requise pour annuler un workflow en cours d'exécution.
Autorisations requises pour les méthodes des règles d'autoscaling
| Méthode | Autorisations requises |
|---|---|
| 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 |
Notes :
- L'autorisation
dataproc.autoscalingPolicies.useest requise pour activer une règle d'autoscaling sur un cluster avec une requête de méthodeclusters.patch.
Autorisations requises pour les méthodes de groupe de nœuds
| Méthode | Autorisations requises |
|---|---|
| projects.regions.nodeGroups.create | dataproc.nodeGroups.create |
| projects.regions.nodeGroups.get | dataproc.nodeGroups.get |
| projects.regions.nodeGroups.resize | dataproc.nodeGroups.update |
Rôles Managed Service pour Apache Spark
Les rôles IAM Managed Service pour Apache Spark regroupent une ou plusieurs autorisations.
Vous accordez des rôles à des utilisateurs ou à des groupes pour leur permettre d'effectuer des actions sur les ressources Managed Service for Apache Spark dans un projet. Par exemple, le rôle Lecteur Managed Service for Apache Spark contient les autorisations get et list, qui permettent à un utilisateur d'obtenir et de répertorier les clusters, les tâches et les opérations Managed Service for Apache Spark dans un projet.
Le tableau suivant répertorie les rôles qui contiennent les autorisations requises pour créer et gérer des clusters Managed Service for Apache Spark.
| Attribuer un rôle à | Rôles |
|---|---|
| Utilisateur | Attribuez les rôles suivants aux utilisateurs :
|
| Compte de service | Attribuez le rôle Nœud de calcul Dataproc au compte de service de VM Managed Service for Apache Spark. |
Veuillez noter les points suivants :
Vous devrez peut-être accorder au compte de service de VM Managed Service for Apache Spark des rôles prédéfinis ou personnalisés supplémentaires contenant les autorisations nécessaires pour d'autres opérations, telles que la lecture et l'écriture de données depuis et vers Cloud Storage, BigQuery, Cloud Logging et d'autres ressources Google Cloud .
Dans certains projets, le compte de service de VM Managed Service pour Apache Spark peut avoir reçu automatiquement le rôle Éditeur du projet, qui inclut les autorisations du rôle "Worker Managed Service pour Apache Spark" ainsi que d'autres autorisations qui ne sont pas nécessaires pour les opérations du plan de données Managed Service pour Apache Spark. Pour suivre le principe de sécurité des bonnes pratiques du moindre privilège, remplacez le rôle Éditeur par le rôle Worker Managed Service for Apache Spark (consultez Afficher les rôles du compte de service de la VM).
Avez-vous besoin d'attribuer des rôles ?
En fonction de la règle de votre organisation, un rôle requis peut déjà avoir été accordé.
Vérifier les rôles accordés aux utilisateurs
Pour savoir 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 savoir 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 savoir 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 les rôles et autorisations Managed Service pour Apache Spark
Vous pouvez utiliser la section suivante pour rechercher les rôles et les autorisations du service géré 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 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 Managed Service for Apache Spark resources. Lowest-level resources where you can grant this role:
|
|
Dataproc Worker( Provides worker access to Managed Service for Apache Spark resources. Intended for service accounts. |
|
Remarques :
- Les autorisations
computesont nécessaires ou recommandées pour créer et afficher des clusters Managed Service for Apache Spark lorsque vous utilisez la console Google Cloud ou la Google Cloud CLI gcloud CLI. - Pour autoriser un utilisateur à télécharger des fichiers, accordez-lui le rôle
Storage Object Creator(Créateur des objets de l'espace de stockage). Pour autoriser un utilisateur à afficher le résultat de la tâche, accordez-lui le rôleStorage Object Viewer(Lecteur des objets de l'espace de stockage). - Un utilisateur doit disposer de l'autorisation
monitoring.timeSeries.listpour pouvoir afficher les graphiques dans la console Google Cloud → Managed Service for Apache Spark → Détails du cluster, onglet "Présentation". - Un utilisateur doit disposer de l'autorisation
compute.instances.listpour pouvoir afficher l'état de l'instance et le menu SSH de l'instance maître dans laGoogle Cloud console → Managed Service for Apache Spark → Détails du cluster, onglet "Instances de VM". Pour plus d'informations sur les rôles Compute Engine, consultez Compute Engine → Rôles IAM disponibles. - Pour créer un cluster avec un compte de service spécifié par l'utilisateur, le compte en question doit disposer de toutes les autorisations accordées par le rôle
Managed Service for Apache Spark Worker, y compris l'accès aux buckets temporaires et de préproduction du service géré pour Apache Spark. Veuillez indiquer tous les rôles supplémentaires nécessaires aux fonctionnalités de configuration. Pour en savoir plus, consultez Créer un cluster avec un compte de service de VM personnalisé.
Rôles au niveau du projet
Il est possible d'obtenir des autorisations au niveau du projet en utilisant les rôles IAM Projet. Le tableau suivant répertorie 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 |
Récapitulatif des rôles IAM et des opérations Managed Service pour Apache Spark
Le tableau suivant liste les opérations Managed Service pour Apache Spark associées aux rôles de projet et Managed Service pour Apache Spark.
| Opération | Éditeur de projet | Lecteur de projet | Administrateur Managed Service pour Apache Spark | Éditeur Managed Service pour Apache Spark | Lecteur Managed Service pour Apache Spark |
|---|---|---|---|---|---|
| Obtenir/Définir des autorisations IAM Managed Service pour Apache Spark | Non | Non | Oui | Non | Non |
| Créer un cluster | Oui | Non | Oui | Oui | Non |
| Répertorier les clusters | Oui | Oui | Oui | Oui | Oui |
| Obtenir les détails du cluster | Oui | Oui | Oui 1, 2 | Oui 1, 2 | Oui 1, 2 |
| Mettre à jour le cluster | Oui | Non | Oui | Oui | Non |
| Supprimer le cluster | Oui | Non | Oui | Oui | Non |
| Démarrer/Arrêter le cluster | Oui | Non | Oui | Oui | Non |
| Envoyer une tâche | Oui | Non | Oui 3 | Oui 3 | Non |
| Répertorier des tâches | Oui | Oui | Oui | Oui | Oui |
| Obtenir les détails de la tâche | Oui | Oui | Oui 4 | Oui 4 | Oui 4 |
| Annuler la tâche | Oui | Non | Oui | Oui | Non |
| Supprimer la tâche | Oui | Non | Oui | Oui | Non |
| Répertorier les opérations | Oui | Oui | Oui | Oui | Oui |
| Obtenir les détails de l'opération | Oui | Oui | Oui | Oui | Oui |
| Supprimer une opération | Oui | Non | Oui | Oui | Non |
Notes :
- Le graphique de performances n'est pas disponible, à moins que l'utilisateur ne possède également un rôle doté de l'autorisation
monitoring.timeSeries.list. - La liste des VM du cluster n'inclut pas d'informations sur l'état ni de lien SSH pour l'instance maître, à moins que l'utilisateur ne dispose également d'un rôle doté de l'autorisation
compute.instances.list. - Les tâches qui importent des fichiers nécessitent que l'utilisateur dispose du rôle
Storage Object Creatorou d'un accès en écriture au bucket de préproduction Managed Service for Apache Spark. - Les résultats des tâches ne sont disponibles que si l'utilisateur dispose également du rôle Observateur d'objets de stockage ou s'il dispose d'un accès en lecture au compartiment de transfert pour le projet.
Champs d'application de l'accès aux VM Managed Service pour Apache Spark
Les niveaux d'accès aux VM et les rôles IAM fonctionnent ensemble pour limiter l'accès des VM aux API Google Cloud. Par exemple, si les VM de cluster ne disposent que du champ d'application https://www.googleapis.com/auth/storage-full, les applications exécutées sur les VM de cluster peuvent appeler les API Cloud Storage, mais elles ne peuvent pas envoyer de requêtes à BigQuery, même si elles sont exécutées en tant que compte de service de VM disposant d'un rôle BigQuery doté d'autorisations étendues.
Une bonne pratique consiste à accorder le champ d'application étendu cloud-platform (https://www.googleapis.com/auth/cloud-platform) aux VM, puis à limiter l'accès aux VM en accordant des rôles IAM spécifiques au compte de service de la VM (consultez la section Bonnes pratiques concernant les champs d'application).
Champs d'application des VM Managed Service pour Apache Spark par défaut. Si les champs d'application ne sont pas spécifiés lors de la création d'un cluster (consultez la commande gcloud dataproc cluster create --scopes), les VM Managed Service for Apache Spark disposent de l'ensemble de champs d'application par défaut suivant :
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 vous spécifiez des champs d'application lors de la création d'un cluster, les VM de cluster disposeront des champs d'application que vous spécifiez et l'ensemble minimal de champs d'application requis suivants (même si vous ne les spécifiez pas) :
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
Gestion des stratégies d'autorisation IAM
Vous attribuez des rôles IAM aux comptes principaux à l'aide de stratégies d'autorisation. Vous pouvez obtenir et définir des stratégies d'autorisation à l'aide de la console Google Cloud , de l'API IAM ou de la Google Cloud CLI.
- Pour la console Google Cloud , consultez Contrôle des accès à l'aide de la console Google Cloud .
- Pour l'API, consultez Contrôle des accès à l'aide de l'API.
- Pour Google Cloud CLI, consultez Contrôle des accès à l'aide de Google Cloud CLI.
Étapes suivantes
- En savoir plus sur les comptes principaux et les rôles Managed Service pour Apache Spark
- En savoir plus sur l'IAM précise Managed Service pour Apache Spark
- Apprenez-en plus sur IAM.
- En savoir plus sur les comptes de service dans Managed Service pour Apache Spark