Comptes de service Dataproc

Cette page décrit les comptes de service et les champs d'application d'accès aux VM, ainsi que leur utilisation avec Dataproc.

Que sont les comptes de service ?

Un compte de service est un compte spécial qui peut être utilisé par des services et des applications exécutés sur une instance de machine virtuelle (VM) Compute Engine pour interagir avec d'autres API Google Cloud. Les applications peuvent utiliser les identifiants du compte de service pour obtenir les autorisations d'accès à un ensemble d'API et effectuer des actions sur la VM dans les autorisations accordées au compte de service.

Comptes de service Dataproc

Les comptes de service suivants disposent des autorisations requises pour effectuer des actions Dataproc dans le projet où se trouve votre cluster.

  • Compte de service de l'agent de service Dataproc : Dataproc crée ce compte de service avec le rôle Agent de service Dataproc dans Dataproc. Projet Google Cloud de l'utilisateur Il ne peut pas être remplacé par un compte de service spécifié par l'utilisateur lors de la création d'un cluster. Ce compte d'agent de service permet d'effectuer des opérations du plan de contrôle Dataproc, telles que la création, la mise à jour et la suppression de VM de cluster (consultez Agent de service Dataproc (identité du plan de contrôle) applicables).

    Par défaut, Dataproc utilise service-[project-number]@dataproc-accounts.iam.gserviceaccount.com en tant que compte d'agent de service. Si ce compte de service n'existe pas, Dataproc utilise le compte d'agent de service des API Google [project-number]@cloudservices.gserviceaccount.com pour les opérations du plan de contrôle.

Réseaux VPC partagés:si le cluster utilise un réseau VPC partagé, un administrateur de VPC partagé doit accorder aux deux comptes de service ci-dessus le rôle Utilisateur de réseau. pour le projet hôte de VPC partagé. Pour en savoir plus, consultez les pages suivantes :

Champs d'application de l'accès aux VM Dataproc

Les champs d'application d'accès aux VM permettent d'accorder ou de limiter l'accès des instances de VM aux API. Ils fonctionnent avec le compte de service de VM pour déterminer l'accès à l'API. Par exemple, si les VM de cluster n'ont que le 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 la VM compte de service qu'il exécute tel qu'il est attribué à un rôle BigQuery disposant d'autorisations étendues.

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 section 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/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 disposent des champs d'application que vous spécifiez.et l'ensemble minimal de champs d'application requis suivant (même si vous ne les spécifiez pas):

https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write

Créer un cluster avec un compte de service de VM géré par l'utilisateur

Vous pouvez spécifier un compte de service de VM lorsque vous créez un cluster. Dataproc ne permet pas de spécifier ni de modifier le compte de service de VM une fois le cluster créé.

Pourquoi spécifier un compte de service de VM géré par l'utilisateur ? Les comptes de service sont dotés de rôles IAM. La spécification d'un compte de service de VM géré par l'utilisateur lors de la création d'un cluster Dataproc vous permet de créer des clusters avec un accès précis et un contrôle précis des ressources du projet. L'utilisation de différents comptes de service de VM gérés par l'utilisateur avec différents clusters Dataproc vous permet de configurer des clusters avec un accès différent aux ressources cloud.

Avant de créer le cluster, créez le compte de service dans le projet dans lequel le cluster sera créé. Accordez au compte de service le rôle Nœud de calcul Dataproc et tous les autres rôles nécessaires à vos tâches, par exemple pour autoriser la lecture et l'écriture de données depuis et vers les ressources Google Cloud, telles que en tant que BigQuery.

Commande gcloud

Exécutez la commande gcloud clusters create pour créer un cluster avec un compte de service de VM et des champs d'application d'accès de VM spécifiés par l'utilisateur.

gcloud dataproc clusters create cluster-name \
    --region=region \
    --service-account=service-account-name@project-id.iam.gserviceaccount.com \
    --scopes=scope[, ...]

API REST

Définissez serviceAccount et serviceAccountScopes dans l'objet GceClusterConfig dans le cadre de la requête API clusters.create. ...

Console

Actuellement, il n'est pas possible de définir un compte de service de VM Dataproc géré par l'utilisateur dans Cloud Console. Vous pouvez définir le champ d'application "cloud-platform" sur les VM de votre cluster en cliquant sur "Autoriser l'accès à l'API à tous les services Google Cloud du même projet" dans Accès au projet du panneau Gérer la sécurité sur la page Dataproc Créer un cluster dans Cloud Console.

Étape suivante