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 Dataproc et sur les rôles IAM qui accordent ces autorisations.
Autorisations Dataproc
Les autorisations Dataproc 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 Dataproc. Par exemple, l'autorisation dataproc.clusters.create permet à un utilisateur de créer des clusters Dataproc 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) Dataproc. Ils sont organisés en fonction des API associées à chaque ressource Dataproc (clusters, tâches, opérations et modèles de workflow).
Champ d'application des autorisations : le champ d'application des autorisations Dataproc 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 Dataproc dans le projet associé.dataproc.jobs.createpermet d'envoyer des tâches Dataproc aux clusters Dataproc dans le projet associé.dataproc.clusters.listpermet de répertorier les détails des clusters Dataproc 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 des tâches
| 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 Dataproc, 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 Dataproc
Les rôles IAM Dataproc 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 Dataproc d'un projet. Par exemple, le rôle Lecteur Dataproc contient les autorisations get et list, qui permettent à un utilisateur d'obtenir et de répertorier des clusters, des tâches et des opérations Dataproc dans un projet.
Le tableau suivant répertorie les rôles qui contiennent les autorisations requises pour créer et gérer des clusters Dataproc.
| 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 Dataproc. |
Veuillez noter les points suivants :
Vous devrez peut-être attribuer au compte de service de VM Dataproc 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 Dataproc peut avoir reçu automatiquement le rôle Éditeur du projet, qui inclut les autorisations du rôle Nœud de calcul Dataproc ainsi que d'autres autorisations qui ne sont pas nécessaires pour les opérations du plan de données Dataproc. Pour suivre le principe de sécurité recommandé du moindre privilège, remplacez le rôle Éditeur par le rôle Nœud de calcul Dataproc (voir Afficher les rôles du compte de service de 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 Dataproc
Vous pouvez utiliser la section suivante pour rechercher les rôles et les autorisations 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. |
|
Remarques :
- Les autorisations
computesont nécessaires ou recommandées pour créer et afficher des clusters Dataproc 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 → Dataproc → 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 → Dataproc → 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
Dataproc Worker, y compris l'accès aux buckets de staging et temporaires Dataproc. 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 d'accès au projet (get / set IamPolicy) et de configurer la facturation du projet |
Récapitulatif des rôles IAM et des opérations Dataproc
Le tableau suivant répertorie les opérations Dataproc associées aux rôles de projet et Dataproc.
| Opération | Éditeur de projet | Lecteur de projet | Administrateur Dataproc | Éditeur Dataproc | Lecteur Dataproc |
|---|---|---|---|---|---|
| Obtenir/Définir des autorisations IAM Dataproc | 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. - Pour les jobs qui importent des fichiers, l'utilisateur doit disposer du rôle
Storage Object Creatorou d'un accès en écriture au bucket de préproduction Dataproc. - 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.
Niveaux d'accès aux VM Dataproc
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 Dataproc 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 Dataproc 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
- Apprenez-en plus sur les comptes principaux et les rôles Dataproc.
- En savoir plus sur l'IAM précise Dataproc
- Apprenez-en plus sur IAM.
- En savoir plus sur les comptes de service dans Dataproc