Rôles et autorisations prédéfinis

Cette page fournit des informations sur les rôles et les autorisations Cloud IAM (Cloud Identity and Access Management) 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 Cloud IAM BigQuery que vous pouvez accorder aux identités pour qu'elles puissent accéder aux ressources BigQuery.

Types de rôles Cloud IAM

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

  • Les rôles primitifs incluent les rôles "Propriétaire", "Éditeur" et "Lecteur". Les rôles primitifs correspondent aux contrôles d'accès qui existaient avant la mise en place de Cloud 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 primitif, 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 primitifs à un utilisateur, les autorisations accordées correspondent à une combinaison des autorisations de chaque rôle.

Pour en savoir plus sur l'utilisation de Cloud IAM pour accéder aux ressources, consultez la section Accorder, modifier et révoquer les accès à des ressources dans la documentation Cloud 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 Cloud IAM.

Autorisations BigQuery et rôles Cloud 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 Cloud 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 (bêta)
  • Vues (bêta)

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.create et bigquery.models.getData Effectuer des opérations de ML : ML.PREDICT, ML.WEIGHTS, ML.TRAINING_INFO et ML.FEATURE_INFO
bigquery.readsessions.create (version bêta) Créer une session de lecture via l'API BigQuery Storage.
bigquery.readsessions.getData (version bêta) Afficher les données d'une session de lecture via l'API BigQuery Storage.
bigquery.readsessions.update (version bêta) 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 (version bêta) Créer des routines (fonctions et procédures stockées).
bigquery.routines.delete (version bêta) Supprimer des routines.
bigquery.routines.get (version bêta) Obtenir des définitions et des métadonnées de routine.
bigquery.routines.list (version bêta) Répertorier des routines et leurs métadonnées.
bigquery.routines.update (version bêta)

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 Cloud 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 Cloud 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 Cloud IAM prédéfinis dans BigQuery

Le tableau suivant répertorie les rôles Cloud 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 BigQueryBêta
  • bigquery.connections.*
roles/bigquery.connectionUser Utilisateur de connexion BigQueryBêta
  • 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.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. Ce rôle permet de vérifier l'existence de toutes leurs tâches, de les énumérer et de les annuler.
  • 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 Bêta 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.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 primitifs BigQuery

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

Rôles personnalisés BigQuery

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

Étapes suivantes