Utiliser des comptes de service
Certaines sources de données sont compatibles avec l'authentification de transfert de données à l'aide d'un compte de service via la console Google Cloud, l'API ou la ligne de commande bq
. Un compte de service est un compte Google associé à votre projet Google Cloud. Un compte de service peut exécuter des jobs, tels que des requêtes programmées ou des pipelines de traitement par lots, en s'authentifiant avec les identifiants du compte de service plutôt que ceux d'un utilisateur.
Vous pouvez mettre à jour un transfert de données existant avec les identifiants d'un compte de service. Pour en savoir plus, consultez la section Mettre à jour les identifiants de transfert de données.
Les situations suivantes nécessitent la mise à jour des identifiants :
Votre transfert n'a pas autorisé l'utilisateur à accéder à la source de données :
Error code 401 : Request is missing required authentication credential. UNAUTHENTICATED
Vous recevez une erreur INVALID_USER lorsque vous tentez d'exécuter le transfert :
Error code 5 : Authentication failure: User Id not found. Error code: INVALID_USERID
Pour en savoir plus sur l'authentification avec des comptes de service, consultez la section Présentation de l'authentification.
Sources de données compatibles avec les comptes de service
Le service de transfert de données BigQuery peut utiliser les identifiants du compte de service pour les transferts avec :
- Cloud Storage
- Amazon Redshift
- Amazon S3
- Campaign Manager
- Copie de l'ensemble de données
- Display & Video 360
- Google Ad Manager
- Google Ads
- Google Merchant Center
- Google Play
- Scheduled Queries
- Search Ads 360
- Teradata
- Propriétaire de contenu YouTube
Avant de commencer
- Vérifiez que vous avez effectué toutes les actions requises sur la page Activer le service de transfert de données BigQuery.
- Attribuez aux utilisateurs des rôles IAM (Identity and Access Management) incluant les autorisations nécessaires pour effectuer l'ensemble des tâches du présent document.
Autorisations requises
Pour mettre à jour un transfert de données afin d'utiliser un compte de service, vous devez disposer des autorisations suivantes :
L'autorisation
bigquery.transfers.update
pour modifier le transfert.Le rôle Cloud IAM prédéfini
roles/bigquery.admin
inclut cette autorisation.Accès au compte de service. Pour plus d'informations sur l'attribution du rôle de compte de service aux utilisateurs, consultez la section Rôle Utilisateur du compte de service.
Assurez-vous que le compte de service que vous choisissez pour exécuter le transfert dispose des autorisations suivantes :
Autorisations
bigquery.datasets.get
etbigquery.datasets.update
sur l'ensemble de données cible Si la table utilise le contrôle des accès au niveau des colonnes, le compte de service doit également disposer de l'autorisationbigquery.tables.setCategory
.Le rôle IAM prédéfini
bigquery.admin
inclut toutes ces autorisations. Pour en savoir plus sur les rôles IAM dans le service de transfert de données BigQuery, consultez la page Présentation d'IAM.Accès à la source de données de transfert configurée. Pour en savoir plus sur les autorisations requises pour différentes sources de données, consultez la section Sources de données compatibles avec les comptes de service.
Pour les transferts Google Ads, le compte de service doit disposer d'une autorité au niveau du domaine. Pour plus d'informations, consultez le Guide des comptes de service de l'API Google Ads.
Mettre à jour les identifiants de transfert de données
Console
La procédure suivante met à jour la configuration de transfert de données pour s'authentifier en tant que compte de service au lieu de votre compte utilisateur individuel.
Dans la console Google Cloud, accédez à la page Transferts de données.
Cliquez sur le transfert dans la liste des transferts de données.
Cliquez sur MODIFIER pour mettre à jour la configuration de transfert.
Dans le champ Compte de service, saisissez le nom du compte de service.
Cliquez sur Enregistrer.
bq
Pour mettre à jour les identifiants d'un transfert de données, vous pouvez utiliser l'outil de ligne de commande bq afin de mettre à jour la configuration de transfert.
Exécutez la commande bq update
avec les options --transfer_config
, --update_credentials
et --service_account_name
.
Par exemple, la commande suivante met à jour la configuration de transfert de données pour s'authentifier en tant que compte de service au lieu de votre compte utilisateur individuel :
bq update \
--transfer_config \
--update_credentials \
--service_account_name=abcdef-test-sa@abcdef-test.iam.gserviceaccount.com projects/862514376110/locations/us/transferConfigs/5dd12f26-0000-262f-bc38-089e0820fe38 \
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.