Accorder l'accès requis à Dataform

Ce document explique comment attribuer les rôles IAM (Identity and Access Management) requis par les comptes de service Dataform pour exécuter des workflows dans BigQuery.

À propos des comptes de service dans Dataform

Lorsque vous créez votre premier dépôt Dataform, Dataform génère automatiquement un compte de service par défaut. Dataform utilise le compte de service par défaut pour interagir avec BigQuery en votre nom. Le compte de service Dataform par défaut ne dispose d'aucun rôle ni d'aucune autorisation BigQuery par défaut. Vous devez accorder l'accès requis au compte de service Dataform par défaut.

Votre ID de compte de service Dataform par défaut est au format suivant:

service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com

Remplacez YOUR_PROJECT_NUMBER par l'ID numérique de votre projet Google Cloud. Vous trouverez l'ID de votre projet Google Cloud dans le tableau de bord de la console Google Cloud. Pour en savoir plus, reportez-vous à la section Identifier les projets.

Outre le compte de service Dataform par défaut, vous pouvez utiliser d'autres comptes de service pour exécuter des workflows en votre nom. Vous pouvez configurer des comptes de service personnalisés:

Lorsque vous créez un dépôt Dataform ou une configuration de workflow, vous pouvez sélectionner n'importe quel compte de service associé à votre projet Google Cloud auquel vous avez accès. Vous devez configurer les autorisations requises pour tous les comptes de service associés à vos ressources Dataform.

Un compte de service personnalisé associé à un dépôt Dataform n'est utilisé que pour exécuter des workflows à partir de ce dépôt. Toutes les autres opérations de dépôt sont toujours effectuées par le compte de service Dataform par défaut.

Rôles requis pour les comptes de service Dataform

Les comptes de service par défaut et personnalisés utilisés dans Dataform nécessitent les rôles IAM BigQuery suivants pour pouvoir exécuter des workflows dans BigQuery:

En outre, vous devez accorder au compte de service Dataform par défaut l'accès Créateur de jetons du compte de service(roles/iam.serviceAccountTokenCreator) à tous les comptes de service personnalisés que vous souhaitez utiliser dans Dataform.

Remarques concernant la sécurité des comptes de service Dataform

L'attribution des rôles requis par Dataform à un compte de service implique les considérations de sécurité suivantes:

  • Tout compte de service disposant des rôles requis peut accéder à BigQuery ou à Secret Manager, indépendamment de VPC Service Controls.

    Pour en savoir plus, consultez la page Configurer VPC Service Controls pour Dataform.

  • Tout utilisateur disposant de l'autorisation IAM dataform.repositories.create peut exécuter du code à l'aide du compte de service Dataform par défaut et de toutes les autorisations accordées à ce compte de service.

    Pour en savoir plus, consultez la page Considérations de sécurité pour les autorisations Dataform.

Pour limiter les données qu'un utilisateur ou un compte de service peut lire ou écrire dans BigQuery, vous pouvez accorder des autorisations IAM BigQuery précises aux ensembles de données ou tables BigQuery sélectionnés. Pour en savoir plus, consultez les pages Contrôler l'accès aux ensembles de données et Contrôler l'accès aux tables et aux vues.

Avant de commencer

  1. Dans la console Google Cloud, accédez à la page Dataform.

    Accéder à la page Dataform

  2. Sélectionnez ou créez un dépôt.

Attribuer les rôles BigQuery requis à un compte de service utilisé dans Dataform

Pour attribuer les rôles IAM BigQuery requis à votre compte de service Dataform par défaut ou à un compte de service personnalisé que vous souhaitez utiliser dans Dataform, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page IAM.

    Accéder à la page IAM

  2. Cliquez sur Accorder l'accès.

  3. Dans le champ Nouveaux comptes principaux, saisissez l'ID du compte de service.

  4. Dans la liste déroulante Sélectionnez un rôle, sélectionnez le rôle Utilisateur de job BigQuery.

  5. Cliquez sur Ajouter un autre rôle, puis dans la liste déroulante Sélectionner un rôle, sélectionnez le rôle Éditeur de données BigQuery.

  6. Cliquez sur Ajouter un autre rôle, puis dans la liste déroulante Sélectionner un rôle, sélectionnez le rôle Lecteur de données BigQuery.

  7. Cliquez sur Enregistrer.

Accorder à un compte de service personnalisé l'accès à la création de jetons

Pour utiliser un compte de service personnalisé dans Dataform, le compte de service Dataform par défaut doit pouvoir accéder au compte de service personnalisé. Pour accorder cet accès, vous devez ajouter le compte de service Dataform par défaut en tant que compte principal au compte de service personnalisé avec le rôle Créateur de jetons du compte de service.

Pour accorder au compte de service Dataform par défaut l'accès à un compte de service personnalisé, procédez comme suit:

  1. Dans la console Google Cloud, accédez à IAM > Comptes de service.

    Accéder à la page Comptes de service

  2. Sélectionnez un projet.

  3. Sur la page Comptes de service du projet "YOUR_PROJECT_NAME", sélectionnez un compte de service.

  4. Accédez à Autorisations, puis cliquez sur Accorder l'accès.

  5. Dans le champ Nouveaux comptes principaux, saisissez votre ID de compte de service Dataform par défaut.

  6. Dans la liste déroulante Sélectionner un rôle, sélectionnez le rôle Créateur de jetons du compte de service.

  7. Cliquez sur Enregistrer.

Étapes suivantes