Rôles et autorisations IAM de Dataproc

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 du 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, 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. Les tables sont organisées 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 Cloud contenant ces autorisations (champ d'application cloud-platform). Voir Autorisations de compte de service

Exemples :

  • dataproc.clusters.create permet de créer Clusters Dataproc dans le projet associé
  • dataproc.jobs.create permet d'envoyer des tâches Dataproc aux clusters Dataproc dans le projet associé.
  • dataproc.clusters.list permet de répertorier les détails des clusters Dataproc dans le projet associé.

Autorisations requises pour les méthodes des 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 :

  1. L'autorisation dataproc.operations.get est également requise pour obtenir l'état à partir de la Google Cloud CLI.
  2. L'autorisation dataproc.clusters.get est également requise pour obtenir le résultat de l'opération à partir de la Google Cloud CLI.
  3. L'autorisation dataproc.autoscalingPolicies.use est é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 :

  1. La Google Cloud CLI nécessite également dataproc.jobs.get autorisation pour jobs submit, jobs wait, jobs update, jobs delete, et jobs kill.

  2. La gcloud CLI nécessite également dataproc.clusters.get l'autorisation d'envoyer des jobs. Pour voir un exemple de paramétrage les autorisations nécessaires pour qu'un utilisateur puisse exécuter gcloud dataproc jobs submit sur un cluster à l'aide de l'IAM précise Dataproc (consultez Envoyer des tâches avec l'IAM précise).

Autorisations requises pour les méthodes d'opération

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 des 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 :

  1. 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 ou submit job peut créer et instancier un modèle de workflow.

  2. La Google Cloud CLI requiert également l'autorisation dataproc.operations.get pour interroger l'achèvement du workflow.

  3. L'autorisation dataproc.operations.cancel est 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 :

  1. L'autorisation dataproc.autoscalingPolicies.use est requise pour activer une règle d'autoscaling sur un cluster avec une requête de méthode clusters.patch.

Autorisations requises pour les méthodes de groupes 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 : Lecteur Dataproc contient Les autorisations get et list, qui permettent à un utilisateur d'obtenir et de répertorier Clusters, jobs et opérations Dataproc dans un projet.

Le tableau suivant répertorie les rôles IAM et les les autorisations associées à chaque rôle.

Autorisations

(roles/dataproc.admin)

Contrôle complet des ressources Dataproc.

compute.machineTypes.*

compute.networks.get

compute.networks.list

compute.projects.get

compute.regions.*

compute.zones.*

dataproc.autoscalingPolicies.*

dataproc.batches.analyze

dataproc.batches.cancel

dataproc.batches.create

dataproc.batches.delete

dataproc.batches.get

dataproc.batches.list

dataproc.batches.sparkApplicationRead

dataproc.clusters.*

dataproc.jobs.*

dataproc.nodeGroups.*

dataproc.operations.*

dataproc.sessionTemplates.*

dataproc.sessions.create

dataproc.sessions.delete

dataproc.sessions.get

dataproc.sessions.list

dataproc.sessions.sparkApplicationRead

dataproc.sessions.terminate

dataproc.workflowTemplates.*

dataprocrm.nodePools.*

dataprocrm.nodes.get

dataprocrm.nodes.heartbeat

dataprocrm.nodes.list

dataprocrm.nodes.update

dataprocrm.operations.get

dataprocrm.operations.list

dataprocrm.workloads.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataproc.editor)

Fournit les autorisations nécessaires pour consulter les ressources requises pour gérer Dataproc, y compris les types de machines, les réseaux, les projets et les zones.

Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :

  • Cluster

compute.machineTypes.*

compute.networks.get

compute.networks.list

compute.projects.get

compute.regions.*

compute.zones.*

dataproc.autoscalingPolicies.create

dataproc.autoscalingPolicies.delete

dataproc.autoscalingPolicies.get

dataproc.autoscalingPolicies.list

dataproc.autoscalingPolicies.update

dataproc.autoscalingPolicies.use

dataproc.batches.analyze

dataproc.batches.cancel

dataproc.batches.create

dataproc.batches.delete

dataproc.batches.get

dataproc.batches.list

dataproc.batches.sparkApplicationRead

dataproc.clusters.create

dataproc.clusters.delete

dataproc.clusters.get

dataproc.clusters.list

dataproc.clusters.start

dataproc.clusters.stop

dataproc.clusters.update

dataproc.clusters.use

dataproc.jobs.cancel

dataproc.jobs.create

dataproc.jobs.delete

dataproc.jobs.get

dataproc.jobs.list

dataproc.jobs.update

dataproc.nodeGroups.*

dataproc.operations.cancel

dataproc.operations.delete

dataproc.operations.get

dataproc.operations.list

dataproc.sessionTemplates.*

dataproc.sessions.create

dataproc.sessions.delete

dataproc.sessions.get

dataproc.sessions.list

dataproc.sessions.sparkApplicationRead

dataproc.sessions.terminate

dataproc.workflowTemplates.create

dataproc.workflowTemplates.delete

dataproc.workflowTemplates.get

dataproc.workflowTemplates.instantiate

dataproc.workflowTemplates.instantiateInline

dataproc.workflowTemplates.list

dataproc.workflowTemplates.update

dataprocrm.nodePools.*

dataprocrm.nodes.get

dataprocrm.nodes.heartbeat

dataprocrm.nodes.list

dataprocrm.nodes.update

dataprocrm.operations.get

dataprocrm.operations.list

dataprocrm.workloads.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataproc.hubAgent)

Permet de gérer les ressources Dataproc. Ce rôle est destiné aux comptes de service exécutant des instances Dataproc Hub.

compute.instances.get

compute.instances.setMetadata

compute.instances.setTags

compute.zoneOperations.get

compute.zones.list

dataproc.autoscalingPolicies.get

dataproc.autoscalingPolicies.list

dataproc.autoscalingPolicies.use

dataproc.clusters.create

dataproc.clusters.delete

dataproc.clusters.get

dataproc.clusters.list

dataproc.clusters.update

dataproc.operations.cancel

dataproc.operations.delete

dataproc.operations.get

dataproc.operations.list

iam.serviceAccounts.actAs

iam.serviceAccounts.get

iam.serviceAccounts.list

logging.buckets.get

logging.buckets.list

logging.exclusions.get

logging.exclusions.list

logging.links.get

logging.links.list

logging.locations.*

logging.logEntries.create

logging.logEntries.list

logging.logEntries.route

logging.logMetrics.get

logging.logMetrics.list

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.operations.get

logging.operations.list

logging.queries.getShared

logging.queries.listShared

logging.queries.usePrivate

logging.sinks.get

logging.sinks.list

logging.usage.get

logging.views.get

logging.views.list

observability.scopes.get

resourcemanager.projects.get

resourcemanager.projects.list

storage.buckets.get

storage.objects.get

storage.objects.list

(roles/dataproc.viewer)

Fournit un accès en lecture seule aux ressources de Dataproc.

Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :

  • Cluster

compute.machineTypes.get

compute.regions.*

compute.zones.*

dataproc.autoscalingPolicies.get

dataproc.autoscalingPolicies.list

dataproc.batches.analyze

dataproc.batches.get

dataproc.batches.list

dataproc.batches.sparkApplicationRead

dataproc.clusters.get

dataproc.clusters.list

dataproc.jobs.get

dataproc.jobs.list

dataproc.nodeGroups.get

dataproc.operations.get

dataproc.operations.list

dataproc.sessionTemplates.get

dataproc.sessionTemplates.list

dataproc.sessions.get

dataproc.sessions.list

dataproc.sessions.sparkApplicationRead

dataproc.workflowTemplates.get

dataproc.workflowTemplates.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataproc.worker)

Fournit au nœud de calcul un accès aux ressources Dataproc. Rôle destiné aux comptes de service.

cloudprofiler.profiles.create

cloudprofiler.profiles.update

dataproc.agents.*

dataproc.batches.sparkApplicationWrite

dataproc.sessions.sparkApplicationWrite

dataproc.tasks.*

dataprocrm.nodes.mintOAuthToken

logging.logEntries.create

logging.logEntries.route

monitoring.metricDescriptors.create

monitoring.metricDescriptors.get

monitoring.metricDescriptors.list

monitoring.monitoredResourceDescriptors.*

monitoring.timeSeries.create

storage.buckets.get

storage.folders.*

storage.managedFolders.create

storage.managedFolders.delete

storage.managedFolders.get

storage.managedFolders.list

storage.multipartUploads.*

storage.objects.*

Remarques :

  • compute autorisations sont nécessaires ou recommandées pour créer et afficher des clusters Dataproc lors de l'utilisation de la console Google Cloud ; ou à la gcloud CLI Google Cloud 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ôle Storage Object Viewer (Lecteur des objets de l'espace de stockage).
  • Un utilisateur doit disposer de l'autorisation monitoring.timeSeries.list pour 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.list pour afficher l'état de l'instance et le menu SSH de l'instance maître Console Google Cloud → Dataproc → Détails du cluster Onglet "Instances de VM". Pour en savoir plus sur les rôles 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, y compris l'accès aux buckets de préproduction et temporaires Dataproc. Veuillez indiquer tous les rôles supplémentaires nécessaires aux fonctionnalités de configuration. Pour en savoir plus, consultez la section 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 Rôles IAM associés aux projets:

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 de projet et Dataproc.

Operation É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 :

  1. 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.
  2. 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.
  3. Pour les tâches qui importent des fichiers, l'utilisateur doit disposer du rôle Storage Object Creator. ou un accès en écriture à Dataproc bucket de préproduction.
  4. 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 un projet, comme la création d'instances de VM, Dataproc effectue les actions à l'aide d'un compte de service disposant des autorisations nécessaires effectuer les actions. 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 la console Google Cloud, de l'API IAM ou de la Google Cloud CLI.

Étape suivante