Autoriser les comptes à transférer des données
Ce document offre un aperçu de la manière dont le service de transfert de données BigQuery interagit avec différents types de comptes, des types d'autorisations de compte dont vous avez besoin pour effectuer des tâches de transfert générales et des étapes de dépannage pour les erreurs d'autorisation courantes.
Pour commencer à utiliser le service de transfert de données BigQuery, assurez-vous que les comptes associés à votre projet (comptes utilisateur et comptes de service) sont authentifiés et autorisés avec les autorisations appropriées pour effectuer vos besoins de transfert. Pour en savoir plus sur les autorisations spécifiques aux sources de données, consultez le guide de transfert de chaque source de données.
Concepts clés
Le service de transfert de données BigQuery automatise les transferts de données provenant de diverses sources dans BigQuery. Le modèle d'authentification et d'autorisation fonctionne à deux étapes différentes, le plan de contrôle et le plan de données, et pour deux types d'utilisateurs, un créateur de transfert ou un propriétaire de transfert.
Plan de contrôle
Le plan de contrôle représente l'étape du processus d'autorisation au cours de laquelle un utilisateur authentifié peut contrôler et gérer les configurations et les exécutions de transfert. Un utilisateur du plan de contrôle doit disposer des autorisations IAM (Identity and Access Management) appropriées pour contrôler et gérer ses configurations de transfert et ses exécutions :
- L'autorisation
bigquery.transfers.update
, qui permet aux utilisateurs d'effectuer les opérations suivantes :- Définissez les configurations de transfert de données.
- Administrez les transferts existants, tels que leur mise à jour, leur désactivation ou leur suppression.
- L'autorisation
bigquery.transfers.get
, qui permet aux utilisateurs de surveiller les exécutions de transfert, telles que la vérification de l'état d'exécution des transferts ou l'affichage de l'historique et des journaux des exécutions de transfert.
Si vous utilisez la console Google Cloud ou l'outil de ligne de commande bq pour créer un transfert, vous devez également disposer de l'autorisation bigquery.transfers.get
.
L'autorisation bigquery.transfers.update
n'est pas nécessaire pour configurer une requête programmée. Pour en savoir plus, consultez les autorisations requises pour les requêtes programmées.
Plan de données
Le plan de données représente l'étape hors du contrôle direct d'un utilisateur. Dans le plan de données, le service de transfert de données BigQuery est capable de transférer des données en mode hors connexion et de déclencher des exécutions de transfert automatiquement en fonction d'une programmation spécifiée par l'utilisateur. Dans le plan de données, les identifiants du propriétaire du transfert sont utilisés pour accéder aux données sources et, selon la source de données, les identifiants du propriétaire du transfert ou l'agent de service du service de transfert de données BigQuery permet de démarrer des tâches BigQuery et d'écrire des données dans l'ensemble de données de destination.
Pour plus de détails sur les autorisations requises, reportez-vous aux sections suivantes de ce guide :
- Autorisation d'accès en lecture pour les sources de données externes
- Autorisation de démarrer des tâches BigQuery
- Autorisation d'exécuter des tâches BigQuery et d'écrire des données dans l'ensemble de données de destination
Créateur de transfert ou propriétaire de transfert
Le créateur de transfert fait référence à l'identité de l'utilisateur qui a créé et configuré la configuration de transfert. Un utilisateur du service de transfert de données BigQuery et un créateur de transfert peuvent être un compte utilisateur ou un compte de service.
Le propriétaire du transfert fait référence à l'identité de l'utilisateur que le service de transfert de données BigQuery utilise pour autoriser le transfert de données, en particulier pour l'extraction des données sources. Pour les sources de données compatibles avec les comptes de service, le propriétaire du transfert peut être un compte utilisateur ou un compte de service. Pour les autres sources de données, le propriétaire du transfert doit être un compte utilisateur.
Le propriétaire du transfert et le créateur du transfert peuvent avoir la même identité d'utilisateur, mais ce n'est pas obligatoire. Il existe plusieurs façons de définir le propriétaire du transfert comme utilisateur différent du créateur de transfert :
- Lors de la création d'un transfert, vous pouvez définir le propriétaire sur un compte de service si la source de données est compatible avec les comptes de service.
- Une fois le transfert créé, toute personne disposant de l'autorisation
bigquery.transfers.update
peut modifier la propriété du transfert vers son propre compte (ou vers un compte de service si la source de données est compatible avec les comptes de service) en mettant à jour les identifiants.
Autorisation d'accès en lecture pour les sources de données externes
Les autorisations requises pour lire des données sources peuvent varier d'une source à l'autre. Par exemple, l'accès à Google Ads nécessite des autorisations d'accès en lecture au numéro client Google Ads. De même, Google Play nécessite un accès aux rapports dans la console Google Play. Pour en savoir plus sur les autorisations spécifiques à une source de données, consultez les guides de transfert de chaque source de données.
Selon le type d'identité du propriétaire du transfert, une méthode d'autorisation différente est requise pour récupérer le jeton d'accès afin d'accéder aux données sources.
Transférer le propriétaire en tant que compte de service
Lorsqu'un compte de service est utilisé en tant que propriétaire du transfert, les autorisations nécessaires sont automatiquement accordées lorsque l'API du service de transfert de données BigQuery est activée pour votre projet. Le service de transfert de données BigQuery utilise un compte de service géré par Google (également appelé agent de service) pour obtenir le jeton d'accès du compte fourni par le compte de service fourni par l'utilisateur (propriétaire de transfert).
Lorsque vous activez l'API du service de transfert de données BigQuery, un agent de service est créé pour votre projet. Le système accorde également à l'agent de service le rôle d'agent de service de transfert de données BigQuery (roles/bigquerydatatransfer.serviceAgent
), qui inclut l'autorisation iam.serviceAccounts.getAccessToken
. Cette autorisation permet à l'agent de service du service de transfert de données BigQuery d'emprunter l'identité du compte de service du propriétaire du transfert pour récupérer le jeton d'accès.
Pour en savoir plus sur l'agent de service du service de transfert de données BigQuery, consultez la section Agent de service. Pour en savoir plus sur l'utilisation des comptes de service et sur la liste la plus récente des sources de données compatibles avec les comptes de service, consultez la page Utiliser des comptes de service.
Transférer le propriétaire en tant que compte utilisateur
Si le propriétaire du transfert qui crée la configuration de transfert est un compte utilisateur (et non un compte de service), vous devez accorder manuellement l'autorisation au service de transfert de données BigQuery pour obtenir le jeton d'accès du compte utilisateur et accéder aux données source au nom du propriétaire du transfert. Vous pouvez accorder une approbation manuelle à l'aide de l'interface de la boîte de dialogue OAuth.
Vous ne devez accorder une autorisation au service de transfert de données BigQuery que la première fois lorsque vous créez un transfert pour une source de données donnée. Vous devez de nouveau accorder l'autorisation lorsque vous créez le premier transfert pour une région nouvellement utilisée, même si vous utilisez la même source de données.
La modification du propriétaire de transfert en mettant à jour les identifiants nécessite également une approbation manuelle si le nouveau propriétaire n'a jamais créé de transfert pour la source de données dans cette région auparavant.
La capture d'écran suivante montre l'interface de la boîte de dialogue OAuth lorsque vous créez un transfert Google Ads. La boîte de dialogue affiche les autorisations spécifiques à la source de données à accorder :
Pour révoquer les autorisations qui ont été accordées, procédez comme suit :
- Accédez à la page du compte Google.
- Cliquez sur Service de transfert de données BigQuery.
- Pour révoquer les autorisations, cliquez sur Supprimer l'accès.
Autorisation de démarrer des tâches BigQuery
Lorsque vous effectuez une migration à partir de la plupart des sources de données, à l'exception des requêtes programmées ou des copies d'ensembles de données, le service de transfert de données BigQuery repose sur des comptes de service gérés Google pour démarrer des tâches BigQuery pour votre projet. L'autorisation requise bigquery.job.create
est automatiquement accordée à l'agent de service lorsque vous activez l'API du service de transfert de données BigQuery pour votre projet. Pour en savoir plus, consultez la page Activer le service de transfert de données BigQuery.
Lorsque vous effectuez une migration à l'aide de requêtes programmées ou de copies d'ensembles de données, le service de transfert de données BigQuery utilise les identifiants du propriétaire du transfert pour démarrer les tâches BigQuery.
Autorisation d'exécuter des tâches BigQuery et d'écrire des données dans l'ensemble de données de destination
Lorsque vous effectuez une migration à partir de la plupart des sources de données, sauf en cas de requêtes programmées ou de copies d'ensembles de données, le service de transfert de données BigQuery s'appuie sur l'agent de service pour écrire les données dans l'ensemble de données de destination BigQuery L'autorisation requise, roles/bigquery.dataEditor
, est accordée à l'agent de service par le service de transfert de données BigQuery lorsque vous créez le transfert. Vous devez disposer de l'autorisation bigquery.datasets.update
sur l'ensemble de données de destination pour l'accorder.
Lorsque vous effectuez une migration à l'aide de requêtes programmées ou de copies d'ensembles de données, le service de transfert de données BigQuery utilise les identifiants du propriétaire du transfert pour exécuter les tâches BigQuery et écrire les données dans l'ensemble de données de destination BigQuery.
Résoudre les erreurs d'autorisation
Si vous rencontrez des problèmes d'autorisation pour votre transfert, consultez la section Problèmes d'autorisation.