Dataform et BigQuery utilisent IAM pour le contrôle des accès. Pour en savoir plus sur les rôles Dataform et autorisations dans IAM, consultez Contrôlez les accès avec IAM.
Lorsque Dataform exécute une table ou une vue, il crée la ressource dans dans BigQuery. Pendant le développement dans Dataform, vous pouvez accorder Rôles BigQuery à des tables et vues individuelles pour contrôler leur accès dans BigQuery après exécution.
Pour en savoir plus sur l'attribution et la révocation des accès à des ressources, consultez Accorder l'accès à une ressource
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
Attribuer des rôles BigQuery à une table ou à une vue
Pour attribuer des rôles BigQuery à une table ou à une vue dans Dataform, procédez comme suit :
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 page.
Sélectionnez un dépôt, puis un espace de travail.
Dans le volet Fichiers, développez la
definitions/
.Sélectionnez le fichier de définition
.sqlx
de la table ou de la vue auquel vous souhaitez accorder l'accès.Dans le fichier, saisissez l'extrait de code suivant :
post_operations { GRANT "ROLE_LIST" ON "RESOURCE_TYPE" ${self()} TO "USER_LIST" }
Remplacez les éléments suivants :
ROLE_LIST: rôle BigQuery ou liste d'éléments séparés par une virgule les rôles BigQuery que vous souhaitez attribuer.
RESOURCE_TYPE :
TABLE
ouVIEW
.USER_LIST: liste des utilisateurs séparés par une virgule auquel le rôle est attribué.
Pour obtenir la liste des formats valides, consultez user_list :
(Facultatif) Cliquez sur Format.
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 présente le lecteur BigQuery. attribué à un utilisateur sur une table:
config { type: "table" }
SELECT ...
post_operations {
GRANT `roles/bigquery.dataViewer`
ON TABLE ${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 à partir 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 à partir d'une table ou d'une vue sélectionnée, procédez comme suit:
Dans la console Google Cloud, accédez à la page Dataform page.
Sélectionnez un dépôt, puis un espace de travail.
Dans le volet Fichiers, développez la
definitions/
.Sélectionnez le fichier de définition
.sqlx
de la table ou de la vue dont vous souhaitez révoquer l'accès.Dans le bloc
post_operations
, saisissez l'instructionREVOKE
suivante:REVOKE "ROLE_LIST" ON "RESOURCE_TYPE" ${self()} TO "USER_LIST"
Remplacez les éléments suivants :
- ROLE_LIST: rôle BigQuery ou liste d'éléments séparés par une virgule les rôles BigQuery que vous souhaitez révoquer.
- RESOURCE_TYPE :
TABLE
ouVIEW
. - USER_LIST: liste des utilisateurs séparés par une virgule du rôle est révoqué. Pour obtenir la liste des formats valides, consultez user_list :
Pour révoquer l'accès accordé dans une instruction
GRANT
du fichier, remplacez le InstructionGRANT
avec une instructionREVOKE
.Removing the `GRANT` statement without adding the `REVOKE` statement does not revoke access.
(Facultatif) Cliquez sur Format.
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 présente le lecteur BigQuery. a été révoqué pour un utilisateur sur une table:
config { type: "table" }
SELECT ...
post_operations {
REVOKE `roles/bigquery.dataViewer`
ON TABLE ${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 vues individuelles au sein d'une
vous pouvez créer un fichier type: "operations"
dédié
GRANT
et REVOKE
Les instructions DCL
Pour gérer l'accès à la table BigQuery dans un seul fichier type: "operations"
, procédez comme suit :
procédez comme suit:
Dans la console Google Cloud, accédez à la page Dataform page.
Sélectionnez un dépôt, puis un espace de travail.
Dans le volet Fichiers, à côté de
definitions/
, cliquez sur Menu Plus.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/
. Par 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 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: rôle BigQuery ou liste d'éléments séparés par une virgule Rôles BigQuery que vous souhaitez accorder ou révoquer.
- RESOURCE_TYPE :
TABLE
ouVIEW
. - RESOURCE_NAME: nom de la table ou de la vue.
- USER_LIST: liste des utilisateurs séparés par une virgule est accordé 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 le InstructionGRANT
avec une instructionREVOKE
.Supprimer l'instruction
GRANT
sans ajouter l'instructionREVOKE
ne révoque pas l'accès.
(Facultatif) Cliquez sur Format.
Exécutez le fichier après chaque mise à jour.
- Si vous avez accordé ou révoqué l'accès sur une table incrémentielle, supprimez le
GRANT
ouREVOKE
à partir du fichier après la première exécution de l'instruction.
- Si vous avez accordé ou révoqué l'accès sur une table incrémentielle, supprimez le
Étape suivante
- Pour en savoir plus sur IAM, consultez Présentation d'IAM
- Pour en savoir plus sur les rôles et les autorisations, consultez 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