Comptes de service

Cette page décrit les comptes de service et 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 votre instance Compute Engine pour interagir avec d'autres API Google Cloud. Les applications peuvent utiliser les identifiants de compte de service pour obtenir les autorisations d'accès à un ensemble d'API et effectuer des actions dans la limite des autorisations accordées au compte de service et à l'instance de machine virtuelle.

Une fois créées, les machines virtuelles Compute Engine peuvent être configurées pour utiliser un compte de service spécifique. Si aucun compte de service n'est spécifié, un compte de service par défaut est utilisé. Pour plus d'informations, consultez la documentation Compute Engine sur les comptes de service.

Comptes de service dans Dataproc

Les clusters Dataproc s'appuient sur les machines virtuelles Compute Engine. Spécifier un compte de service géré par l'utilisateur lors de la création d'un cluster Dataproc vous permet d'utiliser ce compte pour les machines virtuelles Dataproc de ce cluster. Si aucun compte de service n'est spécifié, les machines virtuelles Dataproc utilisent le compte de service Compute Engine par défaut géré par Google [project-number]-compute@developer.gserviceaccount.com.

Pourquoi spécifier un compte de service ?

Les comptes de service sont dotés de rôles IAM. Spécifier un compte de service géré par les utilisateurs lors de la création d'un cluster Dataproc vous permet de créer et d'utiliser des clusters avec des droits d'accès et un contrôle précis sur les ressources Cloud. L'utilisation de plusieurs comptes de service gérés par les utilisateurs avec différents clusters Dataproc permet de définir pour ces clusters des accès différents aux ressources Cloud.

Conditions requises et limites des comptes de service

  • Les comptes de service ne peuvent être définis qu'au moment de la création d'un cluster.
  • Vous devez créer un compte de service avant de créer le cluster Dataproc qui lui sera associé.
  • Une fois défini, le compte de service associé à un cluster ne peut plus être modifié.
  • Assurez-vous que les comptes de service disposent des champs d'application et des rôles IAM adaptés à vos besoins.
  • Les comptes de service utilisés avec Dataproc doivent avoir le rôle Dataproc/Nœud de calcul Dataproc (ou posséder toutes les autorisations accordées par le rôle Nœud de calcul Dataproc).
  • Les comptes de service doivent résider dans le projet au sein duquel le cluster sera créé.
  • Les machines virtuelles Compute Engine utilisées dans les clusters Dataproc ont toujours besoin de champs d'application d'accès spécifiques. Les champs d'application d'accès sont également limités au service auquel ils s'appliquent. Par exemple, si un cluster Dataproc ne dispose que du champ d'application https://www.googleapis.com/auth/storage-full pour Cloud Storage, il ne peut pas utiliser ce même champ pour envoyer des requêtes à BigQuery.

Champs d'application par défaut et minimal

Si les champs d'application du service ne sont pas spécifiés, Dataproc utilise 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 des champs d'application personnalisés sont spécifiés, Dataproc utilise la combinaison des champs d'application spécifiés par l'utilisateur et de l'ensemble minimal de champs d'application requis par Dataproc suivant :
https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write

Utiliser les comptes de service

Vous pouvez spécifier un compte de service géré par les utilisateurs lorsque vous créez un cluster Dataproc via une requête d'API Dataproc clusters.create ou à l'aide de l'outil de ligne de commande gcloud du SDK Cloud.

Commande gcloud

Utilisez la commande gcloud clusters create pour créer un cluster avec un compte de service spécifié par les utilisateurs et des champs d'application d'accès.
gcloud dataproc clusters create cluster-name \
    --region=region \
    --service-account=service-account-name@project-id.iam.gserviceaccount.com \
    --scopes=scope[, ...]

API REST

Vous pouvez définir les paramètres serviceAccount et serviceAccountScopes de l'objet GceClusterConfig dans le cadre de la requête API clusters.create.

Console

La possibilité de configurer des comptes de service gérés par les utilisateurs dans Dataproc via Cloud Console sera ajoutée dans une prochaine version.

Étape suivante