Dataform et BigQuery utilisent IAM pour le contrôle des accès. Pour en savoir plus sur les rôles et les autorisations Dataform dans IAM, consultez la page Contrôler l'accès avec IAM.
Lorsque Dataform exécute une table ou une vue, il crée la ressource dans BigQuery. Lors du développement dans Dataform, vous pouvez attribuer des rôles BigQuery à des tables et des vues individuelles pour contrôler leur accès dans BigQuery après l'exécution.
Pour en savoir plus sur l'attribution et la révocation d'un accès aux ressources, consultez Accorder l'accès à une ressource.
Avant de commencer
- Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Activer les API BigQuery and Dataform.
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Activer les API BigQuery and Dataform.
Attribuer des rôles BigQuery à une table ou à une vue
Vous pouvez attribuer des rôles BigQuery à une table ou à une vue dans Dataform en ajoutant un bloc post_operations
avec l'instruction DCL GRANT
au fichier de définition .sqlx
de la table ou de la vue sélectionnée.
Pour attribuer des rôles BigQuery à une table ou une vue sélectionnée, procédez comme suit:
Dans la console Google Cloud, accédez à la page Dataform.
Sélectionnez un dépôt, puis un espace de travail.
Dans le volet Fichiers, développez le répertoire
definitions/
.Sélectionnez le fichier de définition
.sqlx
de la table ou de la vue à laquelle vous souhaitez accorder l'accès.Dans le fichier, saisissez l'extrait de code suivant :
post_operations { GRANT "ROLE_LIST" ON ${self()} TO "USER_LIST" }
Remplacez les éléments suivants :
- ROLE_LIST par un rôle BigQuery ou une liste de rôles BigQuery séparés par une virgule que vous souhaitez accorder.
USER_LIST avec la liste d'utilisateurs auxquels le rôle est attribué, séparés par une virgule.
Pour obtenir la liste des formats valides, consultez user_list.
Exécutez la table ou la vue.
Si vous avez accordé l'accès à une table incrémentielle, supprimez l'instruction
GRANT
du fichier de définition de table après la première exécution.
L'exemple de code suivant montre le rôle Lecteur BigQuery accordé à un utilisateur sur une table:
config { type: "table" }
SELECT ...
post_operations {
GRANT `roles/bigquery.dataViewer` ON ${self()} TO "user:222larabrown@gmail.com"
}
Révoquer des rôles BigQuery d'une table ou d'une vue
Vous pouvez révoquer des rôles BigQuery d'une table ou d'une vue en ajoutant un bloc post_operations
avec l'instruction DCL REVOKE
au fichier de définition .sqlx
de la table ou de la vue sélectionnée.
Pour révoquer des rôles BigQuery d'une table ou d'une vue sélectionnée, procédez comme suit:
Dans la console Google Cloud, accédez à la page Dataform.
Sélectionnez un dépôt, puis un espace de travail.
Dans le volet Fichiers, développez le répertoire
definitions/
.Sélectionnez le fichier de définition
.sqlx
de la table ou de la vue pour laquelle vous souhaitez révoquer l'accès.Dans le bloc
post_operations
, saisissez l'instructionREVOKE
suivante:REVOKE "ROLE_LIST" ON ${self()} TO "USER_LIST"
Remplacez les éléments suivants :
- ROLE_LIST par un rôle BigQuery ou une liste de rôles BigQuery séparés par une virgule que vous souhaitez révoquer.
- USER_LIST par la liste des utilisateurs dont le rôle est révoqué, séparés par une virgule. Pour obtenir la liste des formats valides, consultez user_list.
Pour révoquer l'accès accordé dans une instruction
GRANT
du fichier, remplacez l'instructionGRANT
par une instructionREVOKE
.Supprimer l'instruction
GRANT
sans ajouter l'instructionREVOKE
ne révoque pas l'accès.
Exécutez la table ou la vue.
Si vous avez révoqué l'accès à une table incrémentielle, supprimez l'instruction
REVOKE
du fichier de définition de table après la première exécution.
L'exemple de code suivant montre le rôle Lecteur BigQuery révoqué pour un utilisateur sur une table:
config { type: "table" }
SELECT ...
post_operations {
REVOKE `roles/bigquery.dataViewer` ON ${self()} FROM "user:222larabrown@gmail.com"
}
Gérer collectivement les rôles BigQuery pour les tables et les vues
Pour contrôler l'accès de BigQuery à des tables et des vues individuelles depuis un emplacement unique, vous pouvez créer un fichier type: "operations"
dédié avec les instructions LDC GRANT
et REVOKE
.
Pour gérer l'accès à la table BigQuery dans un seul fichier type: "operations"
, procédez comme suit:
Dans la console Google Cloud, accédez à la page Dataform.
Sélectionnez un dépôt, puis un espace de travail.
Dans le volet Fichiers, à côté de
definitions/
, cliquez sur le menuPlus.
Cliquez sur Créer un fichier.
Dans le champ Ajouter un chemin d'accès au fichier, saisissez le nom du fichier suivi de
.sqlx
aprèsdefinitions/
. Exemple :definitions/table-access.sqlx
.Les noms de fichiers ne peuvent contenir que des chiffres, des lettres, des traits d'union et des traits de soulignement.
Cliquez sur Créer un fichier.
Dans le volet Fichiers, développez le répertoire
definitions/
, puis sélectionnez le fichier que vous venez de créer.Dans le fichier, saisissez l'extrait de code suivant :
config { type: "operations" } GRANT "ROLE_LIST" ON RESOURCE_TYPE RESOURCE_NAME TO "USER_LIST" REVOKE "ROLE_LIST" ON { "<var>" }}RESOURCE_TYPE RESOURCE_NAME TO "USER_LIST"
Remplacez les éléments suivants :
- ROLE_LIST par un rôle BigQuery ou une liste de rôles BigQuery séparés par une virgule que vous souhaitez accorder ou révoquer.
- RESOURCE_TYPE par le type de la ressource:
TABLE
ouVIEW
. - RESOURCE_NAME par le nom de la table ou de la vue.
USER_LIST avec la liste d'utilisateurs pour lesquels le rôle est attribué ou révoqué
Pour obtenir la liste des formats valides, consultez user_list.
Ajoutez les instructions
GRANT
etREVOKE
si nécessaire.Pour révoquer l'accès accordé dans une instruction
GRANT
du fichier, remplacez l'instructionGRANT
par une instructionREVOKE
.Supprimer l'instruction
GRANT
sans ajouter l'instructionREVOKE
ne révoque pas l'accès.
Exécutez le fichier après chaque mise à jour.
- Si vous avez accordé ou révoqué l'accès à une table incrémentielle, supprimez l'instruction
GRANT
ouREVOKE
du fichier après la première exécution de l'instruction.
- Si vous avez accordé ou révoqué l'accès à une table incrémentielle, supprimez l'instruction
Étapes suivantes
- Pour en savoir plus sur IAM, consultez la page Présentation d'IAM.
- Pour en savoir plus sur les rôles et les autorisations, consultez la page Comprendre les rôles.
- Pour en savoir plus sur la gestion de l'accès aux ressources, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.