Présentation
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 spécifiques 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 votre projet.
Vous n'accordez pas directement des autorisations aux utilisateurs, mais vous leur attribuez des rôles auxquels sont associées 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).
Autorisations 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.get
est également requise pour obtenir des mises à jour de l'état à partir de la CLI Google Cloud. - L'autorisation
dataproc.clusters.get
est également requise pour obtenir le résultat de l'opération de la CLI Google Cloud. - L'autorisation
dataproc.autoscalingPolicies.use
est également requise pour activer une règle d'autoscaling sur un cluster.
Autorisations 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 :
La CLI Google Cloud nécessite également
dataproc.jobs.get
pour que les commandesjobs submit
,jobs wait
,jobs update
,jobs delete
etjobs kill
fonctionnent correctement.La CLI Google Cloud nécessite également l'autorisation
dataproc.clusters.get
pour envoyer des tâches. Pour obtenir un exemple de définition des autorisations nécessaires pour qu'un utilisateur puisse exécutergcloud dataproc jobs submit
sur un cluster spécifique à l'aide de Cloud IAM précis de Dataproc, consultez la section Envoyer des tâches avec Cloud IAM précis.
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 | 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 des modèles de flux de travail
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 cluster
ousubmit job
peut créer et instancier un modèle de workflow.La CLI Google Cloud nécessite également l'autorisation
dataproc.operations.get
pour interroger l'achèvement du workflow.L'autorisation
dataproc.operations.cancel
est requise pour annuler un workflow en cours d'exécution.
Autorisations 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.use
est requise pour activer une règle d'autoscaling sur un cluster avec une requête de méthodeclusters.patch
.
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 dans votre projet. Par exemple, le rôle Lecteur Dataproc comporte les autorisations dataproc.*.get
et dataproc.*.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 IAM Dataproc et les autorisations associées à chaque rôle :
ID de rôle | Permissions |
---|---|
roles/dataproc.admin | dataproc.*.getIamPolicy dataproc.*.setIamPolicy dataproc.*.create dataproc.*.get dataproc.*.list dataproc.*.delete dataproc.*.update dataproc.clusters.use dataproc.clusters.start dataproc.clusters.stop dataproc.jobs.cancel dataproc.workflowTemplates.instantiate dataproc.workflowTemplates.instantiateInline compute.machineTypes.get compute.machineTypes.list compute.networks.get compute.networks.list compute.projects.get compute.regions.get compute.regions.list compute.zones.get compute.zones.list resourcemanager.projects.get resourcemanager.projects.list |
roles/dataproc.editor | dataproc.*.create dataproc.*.get dataproc.*.list dataproc.*.delete dataproc.*.update dataproc.clusters.use dataproc.clusters.start dataproc.clusters.stop dataproc.jobs.cancel dataproc.workflowTemplates.instantiate dataproc.workflowTemplates.instantiateInline compute.machineTypes.get compute.machineTypes.list compute.networks.get compute.networks.list compute.projects.get compute.regions.get compute.regions.list compute.zones.get compute.zones.list resourcemanager.projects.get resourcemanager.projects.list |
roles/dataproc.viewer | dataproc.*.get dataproc.*.list compute.machineTypes.get compute.regions.get compute.regions.list compute.zones.get resourcemanager.projects.get resourcemanager.projects.list |
roles/dataproc.worker (pour les comptes de service uniquement) | dataproc.agents.* dataproc.tasks.* logging.logEntries.create monitoring.metricDescriptors.create monitoring.metricDescriptors.get monitoring.metricDescriptors.list monitoring.monitoredResourceDescriptors.get monitoring.monitoredResourceDescriptors.list monitoring.timeSeries.create storage.buckets.get storage.objects.create storage.objects.get storage.objects.list storage.objects.update storage.objects.delete storage.objects.getIamPolicy storage.objects.setIamPolicy |
Notes :
- "*" signifie "clusters", "tâches" ou "opérations", sauf que les seules autorisations associées à
dataproc.operations.
sontget
,list
etdelete
. - Les autorisations
compute
répertoriées ci-dessus sont nécessaires ou recommandées pour créer et afficher des clusters Dataproc lorsque vous utilisez Google Cloud Console ou la CLI Google Cloud de la CLIgcloud
. - 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). Notez que l'attribution de l'un de ces rôles de stockage offre à l'utilisateur la possibilité d'accéder à n'importe quel bucket du projet. - Un utilisateur doit disposer de l'autorisation
monitoring.timeSeries.list
pour pouvoir afficher les graphiques dans Google Cloud Console → Dataproc → Détails du cluster, onglet "Présentation". - Un utilisateur doit disposer de l'autorisation
compute.instances.list
pour pouvoir afficher l'état de l'instance et le menu SSH de l'instance maître dans Google Cloud Console → Dataproc → Détails du cluster, onglet "Instances de VM". Pour plus d'informations sur les rôles Google Compute Engine, consultez la section 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
. Veuillez indiquer tous les rôles supplémentaires nécessaires aux fonctionnalités de configuration. Pour obtenir la liste des rôles supplémentaires, consultez la page Comptes de service.
Rôles au niveau du projet
Il est possible d'obtenir des autorisations au niveau du projet en utilisant les rôles IAM Projet. Voici un aperçu des permissions correspondantes 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écapitule les opérations Dataproc disponibles en fonction du rôle accordé à l'utilisateur, avec spécification de mises en garde.
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
. - Les tâches qui incluent des fichiers à télécharger ne peuvent pas être envoyées à moins que l'utilisateur ait également le rôle de créateur d'objet de stockage ou qu'il ait obtenu un accès en écriture au compartiment de transfert pour le projet.
- 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.
Comptes de service
Lorsque vous appelez des API Dataproc pour effectuer des actions dans le projet où se trouve votre cluster, comme la création d'instances de VM au sein du projet, Dataproc effectue ces actions en votre nom à l'aide d'un compte de service qui dispose des autorisations requises. Pour en savoir plus, consultez la section Comptes de service Dataproc.
Gestion de l'IAM
Vous pouvez obtenir et définir des stratégies IAM à l'aide de Google Cloud Console, de l'API IAM ou de la CLI Google Cloud.
- Pour Google Cloud Console, consultez la section Contrôle des accès via Google Cloud Console.
- Pour l'API, consultez Contrôle d'accès via les API.
- Pour en savoir plus sur la CLI Google Cloud, consultez la page Contrôle des accès via la CLI Google Cloud.
Étape suivante
- 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