Accorder à Dataform l'accès requis

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. Par défaut, aucun rôle ni autorisation BigQuery n'est accordé au compte de service Dataform par défaut. Vous devez accorder l'accès requis au compte de service Dataform par défaut.

L'ID de votre 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 projetGoogle Cloud . Vous trouverez l' Google Cloud ID de votre projet dans le tableau de bord de la console Google Cloud. Pour en savoir plus, consultez la section Identifier des projets.

En plus du 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 ou une configuration de workflow Dataform, 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:

Vous devez également accorder au compte de service Dataform par défaut le rôle Créateur de jetons de compte de service(roles/iam.serviceAccountTokenCreator) pour accéder à tous les comptes de service personnalisés que vous souhaitez utiliser dans Dataform.

Points à prendre en compte concernant la sécurité des comptes de service Dataform

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

  • Tout compte de service auquel les rôles requis ont été attribués peut accéder à BigQuery ou à Secret Manager dans le projet auquel il appartient, quel que soit VPC Service Controls.

    Pour en savoir plus, consultez la section 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 section Remarques sur la 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 à des ensembles de données ou des 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 page.

    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 accorder 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électionner un rôle, sélectionnez le rôle Utilisateur de tâche BigQuery.

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

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

  7. Cliquez sur Enregistrer.

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

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 pour le projet "YOUR_PROJECT_NAME", sélectionnez votre compte de service Dataform personnalisé.

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

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

    L'ID de votre compte de service Dataform par défaut est au format suivant:

    service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
  6. Dans la liste déroulante Sélectionner un rôle, sélectionnez le rôle Créateur de jetons de compte de service.

  7. Cliquez sur Enregistrer.

Étape suivante