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 rôles IAM appropriés.
- 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.writeSi 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ètresserviceAccount
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
- Obtenez plus d'informations sur les comptes de service.
- Obtenez plus d'informations sur la création de comptes de service.
- Obtenez plus d'informations sur les rôles IAM de Compute Engine.