Rôles prédéfinis et autorisations

Cette page fournit des informations sur les rôles et les autorisations de gestion de l'authentification et des accès (IAM) pour BigQuery.

Cette page inclut les rôles et les autorisations correspondant à chacun des produits associés de BigQuery :

  • BigQuery ML
  • BigQuery Data Transfer Service
  • BigQuery BI Engine

Pour en savoir plus sur les contrôles d'accès dans BigQuery ML, consultez la page Contrôle des accès dans la documentation BigQuery ML.

Présentation

Lorsqu'une identité appelle une API Google Cloud, BigQuery exige qu'elle dispose des autorisations appropriées pour accéder à la ressource. Vous pouvez accorder des autorisations en attribuant des rôles à un utilisateur, à un groupe ou à un compte de service.

Cette page décrit les rôles IAM BigQuery que vous pouvez accorder aux identités pour qu'elles puissent accéder aux ressources BigQuery.

Types de rôles IAM

Il existe trois types de rôles dans Cloud IAM :

  • Les rôles de base incluent les rôles "Propriétaire", "Éditeur" et "Lecteur". Les rôles de base correspondent aux contrôles d'accès qui existaient avant la mise en place d'IAM.

  • Les rôles prédéfinis fournissent un accès précis à un service spécifique et sont gérés par Google Cloud. Ils sont conçus pour des cas d'utilisation courants et des modèles de contrôle des accès.

  • Les rôles personnalisés fournissent un accès précis en fonction d'une liste d'autorisations spécifiée par l'utilisateur.

Pour déterminer si une ou plusieurs autorisations sont incluses dans un rôle de base, prédéfini ou personnalisé, vous pouvez employer l'une des méthodes suivantes :

Lorsque vous attribuez des rôles prédéfinis et des rôles de base à un utilisateur, les autorisations accordées correspondent à une combinaison des autorisations de chaque rôle.

Pour en savoir plus sur l'utilisation d'IAM pour accéder aux ressources, consultez la section Accorder, modifier et révoquer les accès à des ressources dans la documentation spécifique à IAM.

Pour en savoir plus sur la création de rôles personnalisés, consultez la page Créer et gérer les rôles personnalisés dans la documentation spécifique à IAM.

Autorisations BigQuery et rôles IAM prédéfinis

Pour accorder l'accès à une ressource BigQuery, attribuez un ou plusieurs rôles à un utilisateur, un groupe ou un compte de service. Vous pouvez accorder l'accès aux niveaux de ressources BigQuery suivants :

  • Organisation ou projet Google Cloud
  • Niveau de l'ensemble de données
  • Niveau de la table ou de la vue

Rôles appliqués au niveau de l'organisation ou du projet Cloud

Lorsque vous attribuez des rôles au niveau de l'organisation et du projet, vous fournissez des autorisations pour exécuter des tâches BigQuery ou pour accéder à toutes les ressources BigQuery d'un projet.

Rôles appliqués au niveau de l'ensemble de données

Vous pouvez également attribuer des rôles au niveau de l'ensemble de données pour ne fournir l'accès qu'à un ensemble de données spécifique, sans fournir un accès complet aux ressources du projet. Dans la hiérarchie des stratégies IAM, les ensembles de données BigQuery sont des ressources enfants de projets. Pour en savoir plus sur l'attribution de rôles au niveau de l'ensemble de données, consultez la page Contrôler l'accès aux ensembles de données.

Rôles appliqués à des ressources individuelles au sein des ensembles de données

Vous pouvez attribuer des rôles individuellement à certains types de ressources dans des ensembles de données, sans fournir un accès complet aux ressources de l'ensemble de données.

Les rôles peuvent être appliqués à des ressources individuelles des types suivants :

  • tables
  • vues

Les rôles ne peuvent pas être appliqués à des ressources individuelles des types suivants :

  • routines
  • models

Pour en savoir plus sur l'attribution de rôles au niveau de la table ou de la vue, consultez la page Contrôler l'accès aux tables ou aux vues.

Autorisations BigQuery

Le tableau suivant décrit les autorisations disponibles dans BigQuery.

Permission Description
bigquery.bireservations.get (version bêta) Consulter les réservations BI Engine.
bigquery.bireservations.update (version bêta) Mettre à jour les réservations BI Engine.
bigquery.capacityCommitments.create (version bêta) Créer un engagement de capacité dans le projet.
bigquery.capacityCommitments.delete (version bêta) Supprimer un engagement de capacité.
bigquery.capacityCommitments.get (version bêta) Récupérer les informations sur un engagement de capacité.
bigquery.capacityCommitments.list (version bêta) Répertorier tous les engagements de capacité dans un projet.
bigquery.capacityCommitments.update (version bêta) Mettre à jour tous les engagements de capacité dans un projet.
bigquery.connections.create Créer des connexions dans un projet
bigquery.connections.delete Supprimer une connexion
bigquery.connections.get Obtenir des métadonnées de connexion. Les identifiants sont exclus.
bigquery.connections.list Répertorier les connexions d'un projet
bigquery.connections.update Mettre à jour une connexion et ses identifiants
bigquery.connections.use Utiliser une configuration de connexion pour se connecter à une source de données distante
bigquery.datasets.create Créer des ensembles de données vides.
bigquery.datasets.delete Supprimer un ensemble de données.
bigquery.datasets.get Obtenir les métadonnées d'un ensemble de données
bigquery.datasets.getIamPolicy Réservé pour une utilisation ultérieure.
bigquery.datasets.setIamPolicy Réservé pour une utilisation ultérieure.
bigquery.datasets.update Mettre à jour les métadonnées d'un ensemble de données
bigquery.datasets.updateTag (version bêta) Mettre à jour les tags d'un ensemble de données
bigquery.jobs.create Exécuter des tâches, y compris des requêtes, dans le projet
bigquery.jobs.get Obtenir les données et les métadonnées de n'importe quelle tâche*.
bigquery.jobs.list Répertorier toutes les tâches et récupérer les métadonnées de n'importe quelle tâche envoyée par un utilisateur*. Les informations et les métadonnées des tâches envoyées par d'autres utilisateurs sont masquées.
bigquery.jobs.listAll Répertorier toutes les tâches et récupérer les métadonnées de n'importe quelle tâche envoyée par un utilisateur*.
bigquery.jobs.update Annuler n'importe quelle tâche*.
bigquery.models.create Créer des modèles.
bigquery.models.delete Supprimer des modèles.
bigquery.models.getData Obtenir des données de modèle. Pour obtenir des métadonnées de modèle, vous avez besoin de bigquery.models.getMetadata.
bigquery.models.getMetadata Obtenir des métadonnées de modèle. Pour obtenir des données de modèle, vous avez besoin de bigquery.models.getData.
bigquery.models.list Répertorier les modèles et les métadonnées sur les modèles.
bigquery.models.updateData Mettre à jour les données de modèle. Pour mettre à jour les métadonnées de modèle, vous avez besoin de bigquery.models.updateMetadata.
bigquery.models.updateMetadata Mettre à jour les métadonnées de modèle. Pour mettre à jour les données de modèle, vous avez besoin de bigquery.models.updateData.
bigquery.models.export Exporter un modèle.
bigquery.readsessions.create Créer une session de lecture via l'API BigQuery Storage
bigquery.readsessions.getData Afficher les données d'une session de lecture via l'API BigQuery Storage.
bigquery.readsessions.update Mettre à jour une session de lecture via l'API BigQuery Storage.
bigquery.reservations.create (version bêta) Créer une réservation dans un projet.
bigquery.reservations.delete (version bêta) Supprimer une réservation.
bigquery.reservations.get (version bêta) Récupérer les informations sur une réservation.
bigquery.reservations.list (version bêta) Répertorier toutes les réservations d'un projet.
bigquery.reservations.update (version bêta) Mettre à jour les propriétés d'une réservation.
bigquery.reservationAssignments.create (version bêta)

Créer une attribution de réservation. Cette autorisation est requise pour le projet propriétaire et la ressource affectée.
Pour transférer une attribution de réservation, vous avez besoin de bigquery.reservationAssignments.create pour le nouveau projet propriétaire et la ressource affectée.

bigquery.reservationAssignments.delete (version bêta)

Supprimer une attribution de réservation. Cette autorisation est requise pour le projet propriétaire et la ressource affectée.
Pour transférer une attribution de réservation, vous avez besoin de bigquery.reservationAssignments.delete pour l'ancien projet propriétaire et la ressource affectée.

bigquery.reservationAssignments.list (version bêta) Répertorier toutes les attributions de réservation dans un projet.
bigquery.reservationAssignments.search (version bêta) Rechercher une attribution de réservation pour un projet, un dossier ou une organisation spécifique.
bigquery.routines.create Créer des routines (fonctions et procédures stockées)
bigquery.routines.delete Supprimer des routines
bigquery.routines.get Obtenir des définitions et des métadonnées de routine
bigquery.routines.list Répertorier des routines et leurs métadonnées
bigquery.routines.update

Mettre à jour des définitions et des métadonnées de routine

bigquery.savedqueries.create Créer des requêtes enregistrées.
bigquery.savedqueries.delete Supprimer les requêtes enregistrées.
bigquery.savedqueries.get Obtenir les métadonnées des requêtes enregistrées.
bigquery.savedqueries.list Répertorier les requêtes enregistrées.
bigquery.savedqueries.update Mettre à jour les requêtes enregistrées.
bigquery.tables.create Créer des tables.
bigquery.tables.delete Supprimer des tables.
bigquery.tables.export Exporter les données d'une table de BigQuery.
bigquery.tables.get Obtenir les métadonnées d'une table.
Pour obtenir des données d'une table, vous avez besoin de bigquery.tables.getData.
bigquery.tables.getData Obtenir les données d'une table. Cette autorisation est requise pour interroger les données d'une table.
Pour obtenir les métadonnées d'une table, vous avez besoin de bigquery.tables.get.
bigquery.tables.getIamPolicy Lire la stratégie IAM d'une table
bigquery.tables.list Répertorier des tables et leurs métadonnées
bigquery.tables.setCategory Définir des tags avec stratégie dans le schéma de table
bigquery.tables.setIamPolicy Modifier la stratégie IAM d'une table
bigquery.tables.update

Mettre à jour les métadonnées d'une table.
Pour mettre à jour les données d'une table, vous avez besoin de bigquery.tables.updateData.

bigquery.tables.updateData

Mettre à jour les données d'une table.
Pour mettre à jour les métadonnées d'une table, vous avez besoin de bigquery.tables.update.

bigquery.tables.updateTag (version bêta) Mettre à jour les tags d'une table
bigquery.transfers.get Obtenir des métadonnées de transfert
bigquery.transfers.update Créer, mettre à jour et supprimer des transferts.

* Pour chaque tâche que vous créez, vous disposez automatiquement de l'équivalent des autorisations bigquery.jobs.get et bigquery.jobs.update pour cette tâche.

Rôles IAM prédéfinis dans BigQuery

Le tableau suivant répertorie les rôles IAM prédéfinis dans BigQuery, ainsi que la liste de toutes les autorisations incluses dans chaque rôle. Notez que chaque autorisation est applicable à un type de ressource particulier.

Rôle Titre Description Autorisations Ressource la plus basse
roles/bigquery.admin Administrateur BigQuery Fournit des autorisations permettant de gérer toutes les ressources du projet. Peut gérer toutes les données du projet et annuler des tâches exécutées par d'autres utilisateurs dans le projet.
  • bigquery.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projet
roles/bigquery.connectionAdmin Administrateur de connexion BigQuery
  • bigquery.connections.*
roles/bigquery.connectionUser Utilisateur de connexion BigQuery
  • bigquery.connections.get
  • bigquery.connections.getIamPolicy
  • bigquery.connections.list
  • bigquery.connections.use
roles/bigquery.dataEditor Éditeur de données BigQuery

Lorsque ce rôle est appliqué à une table ou une vue, il fournit des autorisations permettant d'effectuer les opérations suivantes :

  • Lire et mettre à jour les données et les métadonnées de la table ou de la vue
  • Supprimer la table ou la vue

Ce rôle ne peut pas être appliqué à des modèles ou des routines individuels.

Lorsqu'il est appliqué à un ensemble de données, ce rôle fournit des autorisations permettant d'effectuer les opérations suivantes :

  • Lire les métadonnées de l'ensemble de données et répertorier les tables qu'il contient
  • Créer, mettre à jour, obtenir et supprimer les tables de l'ensemble de données

Lorsque ce rôle est appliqué au niveau du projet ou de l'organisation, il permet également de créer des ensembles de données.

  • bigquery.datasets.create
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.datasets.updateTag
  • bigquery.models.*
  • bigquery.routines.*
  • bigquery.tables.create
  • bigquery.tables.delete
  • bigquery.tables.export
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.getIamPolicy
  • bigquery.tables.list
  • bigquery.tables.update
  • bigquery.tables.updateData
  • bigquery.tables.updateTag
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Table ou vue
roles/bigquery.dataOwner Propriétaire de données BigQuery

Lorsque ce rôle est appliqué à une table ou une vue, il fournit des autorisations permettant d'effectuer les opérations suivantes :

  • Lire et mettre à jour les données et les métadonnées de la table ou de la vue
  • Partager la table ou la vue
  • Supprimer la table ou la vue

Ce rôle ne peut pas être appliqué à des modèles ou des routines individuels.

Lorsqu'il est appliqué à un ensemble de données, ce rôle fournit des autorisations permettant d'effectuer les opérations suivantes :

  • Lire, mettre à jour et supprimer l'ensemble de données
  • créer, mettre à jour, obtenir et supprimer les tables de l'ensemble de données.

Lorsque ce rôle est appliqué au niveau du projet ou de l'organisation, il permet également de créer des ensembles de données.

  • bigquery.datasets.*
  • bigquery.models.*
  • bigquery.routines.*
  • bigquery.tables.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Table ou vue
roles/bigquery.dataViewer Lecteur de données BigQuery

Lorsque ce rôle est appliqué à une table ou une vue, il fournit des autorisations permettant d'effectuer les opérations suivantes :

  • Lire les données et les métadonnées de la table ou de la vue

Ce rôle ne peut pas être appliqué à des modèles ou des routines individuels.

Lorsqu'il est appliqué à un ensemble de données, ce rôle fournit des autorisations permettant d'effectuer les opérations suivantes :

  • Lire les métadonnées de l'ensemble de données et répertorier les tables qu'il contient
  • Lire les données et les métadonnées des tables de l'ensemble de données

Lorsque ce rôle est appliqué au niveau du projet ou de l'organisation, il peut également énumérer tous les ensembles de données du projet. Toutefois, des rôles supplémentaires sont nécessaires pour permettre l'exécution de tâches.

  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.models.export
  • bigquery.models.getData
  • bigquery.models.getMetadata
  • bigquery.models.list
  • bigquery.routines.get
  • bigquery.routines.list
  • bigquery.tables.export
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.getIamPolicy
  • bigquery.tables.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Table ou vue
roles/bigquery.jobUser Utilisateur de tâche BigQuery Fournit des autorisations permettant d'exécuter des tâches, y compris des requêtes, dans le projet.
  • bigquery.jobs.create
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projet
roles/bigquery.metadataViewer Lecteur de métadonnées BigQuery

Lorsque ce rôle est appliqué à une table ou une vue, il fournit des autorisations permettant d'effectuer les opérations suivantes :

  • Lire les métadonnées de la table ou de la vue

Ce rôle ne peut pas être appliqué à des modèles ou des routines individuels.

Lorsqu'il est appliqué à un ensemble de données, ce rôle fournit des autorisations permettant d'effectuer les opérations suivantes :

  • Répertorier les tables et les vues dans l'ensemble de données
  • Lire les métadonnées des tables et des vues de l'ensemble de données

Lorsqu'il est appliqué au niveau du projet ou de l'organisation, ce rôle fournit des autorisations permettant d'effectuer les opérations suivantes :

  • Répertorier tous les ensembles de données et lire les métadonnées de tous les ensembles de données du projet
  • répertorier toutes les tables et vues, et lire les métadonnées de toutes les tables et vues du projet.

Des rôles supplémentaires sont nécessaires pour permettre l'exécution de tâches.

  • bigquery.datasets.get
  • bigquery.datasets.getiamPolicy
  • bigquery.models.getMetadata
  • bigquery.models.list
  • bigquery.routines.get
  • bigquery.routines.list
  • bigquery.tables.get
  • bigquery.tables.getIamPolicy
  • bigquery.tables.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Table ou vue
roles/bigquery.readSessionUser Utilisateur de sessions de lecture BigQuery Accès permettant de créer et d'utiliser des sessions de lecture
  • bigquery.readsessions.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/bigquery.resourceAdmin Administrateur de ressources BigQuery Gérer toutes les ressources BigQuery.
  • bigquery.bireservations.*
  • bigquery.capacityCommitments.*
  • bigquery.jobs.get
  • bigquery.jobs.list
  • bigquery.jobs.listAll
  • bigquery.reservationAssignments.*
  • bigquery.reservations.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/bigquery.resourceEditor Éditeur de ressources BigQuery Gérer toutes les ressources BigQuery, sans pouvoir prendre de décisions d'achat.
  • bigquery.bireservations.get
  • bigquery.capacityCommitments.get
  • bigquery.capacityCommitments.list
  • bigquery.jobs.get
  • bigquery.jobs.list
  • bigquery.jobs.listAll
  • bigquery.reservationAssignments.*
  • bigquery.reservations.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/bigquery.resourceViewer Lecteur de ressources BigQuery Afficher toutes les ressources BigQuery sans pouvoir apporter de modifications ou prendre de décisions d'achat.
  • bigquery.bireservations.get
  • bigquery.capacityCommitments.get
  • bigquery.capacityCommitments.list
  • bigquery.jobs.get
  • bigquery.jobs.list
  • bigquery.jobs.listAll
  • bigquery.reservationAssignments.list
  • bigquery.reservationAssignments.search
  • bigquery.reservations.get
  • bigquery.reservations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/bigquery.user Utilisateur BigQuery

Lorsqu'il est appliqué à un ensemble de données, ce rôle permet d'en lire les métadonnées et d'en répertorier les tables.

Lorsqu'il est appliqué à un projet, ce rôle permet également d'exécuter des tâches, telles que des requêtes, au sein du projet. Un membre doté de ce rôle peut énumérer ou annuler ses propres tâches et énumérer les ensembles de données d'un projet. En outre, ce rôle permet la création de nouveaux ensembles de données au sein du projet. Le créateur dispose alors du rôle de propriétaire de données BigQuery (roles/bigquery.dataOwner) sur ces nouveaux ensembles de données.

  • bigquery.bireservations.get
  • bigquery.capacityCommitments.get
  • bigquery.capacityCommitments.list
  • bigquery.config.get
  • bigquery.datasets.create
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.jobs.create
  • bigquery.jobs.list
  • bigquery.models.list
  • bigquery.readsessions.*
  • bigquery.reservationAssignments.list
  • bigquery.reservationAssignments.search
  • bigquery.reservations.get
  • bigquery.reservations.list
  • bigquery.routines.list
  • bigquery.savedqueries.get
  • bigquery.savedqueries.list
  • bigquery.tables.list
  • bigquery.transfers.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Ensemble de données

Rôles de base BigQuery

Pour en savoir plus sur les rôles de base pour BigQuery, reportez-vous à la page Rôles de base et autorisations BigQuery.

Rôles personnalisés BigQuery

Pour créer un rôle IAM personnalisé pour BigQuery, suivez les étapes décrites dans la documentation sur les rôles personnalisés d'IAM.

Étape suivante