Entités principales et rôles Dataproc

Lorsque vous utilisez le service Dataproc pour créer des clusters et exécuter des tâches sur vos clusters, le service configure les autorisations Dataproc et les rôles IAM nécessaires dans votre projet pour accéder aux ressources Google Cloud nécessaires à ces opérations et les utiliser. Notez toutefois que si vous travaillez avec plusieurs projets (afin d'accéder aux données d'un autre projet, par exemple), vous devez configurer les rôles et autorisations nécessaires pour accéder aux ressources des différents projets.

Pour vous aider à travailler efficacement sur plusieurs projets, ce document répertorie les principaux qui utilisent le service Dataproc, ainsi que les rôles et autorisations associés nécessaires à ces derniers pour accéder aux ressources Google Cloud et les utiliser.

Utilisateur de l'API Dataproc (identité d'utilisateur final)

Exemple : nom_utilisateur@example.com

Il s'agit de l'utilisateur final qui appelle le service Dataproc. L'utilisateur final est généralement un individu, mais il peut également s'agir d'un compte de service si Dataproc est appelé via un client API ou un autre service Google Cloud tel que Compute Engine, Cloud Functions ou Cloud Composer.

Rôles et autorisations associés :

Bon à savoir

  • Tâches envoyées par l'API Dataproc exécutées en tant qu'utilisateur root
  • Les clusters Dataproc héritent des métadonnées SSH Compute Engine à l'échelle du projet, sauf s'ils sont explicitement bloqués en définissant --metadata=block-project-ssh-keys=true lorsque vous créez votre cluster (consultez la section Métadonnées du cluster).
  • Si vous utilisez gcloud compute ssh pour accéder à un cluster Dataproc afin d'envoyer une tâche via la ligne de commande, les tâches doivent s'exécuter sous le nom d'utilisateur connecté, mais cette authentification n'est pas appliquée par défaut dans la VM
  • Les répertoires d'utilisateurs HDFS sont créés pour chaque utilisateur SSH au niveau du projet. Ces répertoires HDFS sont créés au moment du déploiement du cluster, et un nouvel utilisateur SSH (après le déploiement) ne se verra pas attribuer un répertoire HDFS sur les clusters existants.

Agent de service Dataproc (identité de plan de contrôle)

Exemple : service-project-number@dataproc-accounts.iam.gserviceaccount.com

Dataproc crée ce compte de service avec le rôle Agent de service Dataproc dans le projet Google Cloud d'un utilisateur Dataproc. Il ne peut pas être remplacé par un compte de service spécifié par l'utilisateur lors de la création d'un cluster. Vous n'avez pas besoin de configurer ce compte, sauf si vous créez un cluster qui utilise un réseau VPC partagé dans un autre projet.

Ce compte de service permet d'effectuer un grand nombre d'opérations système, parmi lesquelles :

  • Les opérations get et list pour confirmer la configuration des ressources telles que les images, les pare-feu, les actions d'initialisation Dataproc et les buckets Cloud Storage
  • Création automatique du bucket de préproduction Dataproc s'il n'est pas spécifié par l'utilisateur
  • Écrire des métadonnées de configuration de cluster dans le bucket de préproduction
  • Créer des ressources Compute Engine, telles que des instances de VM, des groupes d'instances et des modèles d'instances

Erreur associée : "Le compte de service ne possède aucun accès en lecture à la ressource et ne peut pas la répertorier."

Rôles et autorisations associés :

  • Rôle : agent de service Dataproc

Compte de service de la VM Dataproc (identité de plan de données)

Exemple : project-number-compute@developer.gserviceaccount.com

Les VM Dataproc s'exécutent avec ce compte de service. Les tâches utilisateur bénéficient des autorisations de ce compte de service. Votre code d'application s'exécute à l'aide de ce compte de service sur les VM de nœud de calcul Dataproc.

Vous pouvez spécifier un compte de service géré par l'utilisateur à l'aide de l'option --service-account facultative avec la commande gcloud dataproc clusters create ou le champGceClusterConfig.serviceAccount dans le cadre d'une requête API Dataproc clusters.create. Si aucun compte de service géré par l'utilisateur n'est spécifié lors de la création d'un cluster, le compte de service Compute Engine par défaut répertorié dans l'exemple ci-dessus est utilisé.

Le compte de service de VM doit être autorisé à effectuer les opérations suivantes :

  • communiquer avec le plan de contrôle Dataproc
  • lire et écrire des données dans le bucket de préproduction Dataproc

Selon les exigences de la tâche, le compte de service de VM peut également avoir besoin des autorisations suivantes :

  • lire et écrire dans Cloud Storage, BigQuery, Cloud Logging et d'autres ressources Google Cloud

Rôles et autorisations associés :

Pour en savoir plus