Présentation d'IAM
Ce document fournit des informations sur les rôles et les autorisations Identity and Access Management (IAM) pour BigQuery.
Pour vous familiariser avec la gestion des accès dans Google Cloud en général, consultez la page Présentation d'IAM. Pour obtenir des conseils détaillés sur les rôles et les autorisations dans BigQuery ML, consultez la page Contrôle des accès avec IAM.
Présentation
Si un compte principal (un utilisateur, un groupe ou un compte de service) appelle une API Google Cloud, il doit disposer des autorisations IAM appropriées pour utiliser la ressource. Pour accorder à un compte principal les autorisations requises, vous lui attribuez un rôle IAM.
Ce document décrit les rôles IAM BigQuery que vous pouvez attribuer aux comptes principaux pour qu'ils puissent accéder aux ressources BigQuery.
Types de rôles IAM
Vous pouvez gérer les types de rôles suivants dans 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 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, vous pouvez appliquer l'une des méthodes suivantes :
- La documentation de référence sur les recherches d'autorisations IAM
- La commande
gcloud iam roles describe
- La méthode
roles.get()
dans l'API IAM
Lorsque vous attribuez plusieurs types de rôles à 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 page 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
Les autorisations ne sont pas attribuées directement aux utilisateurs, aux groupes ou aux comptes de service. À la place, des utilisateurs, des groupes ou des comptes de service ont accès à des rôles prédéfinis ou personnalisés qui leur permettent d'effectuer des actions sur les ressources.
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
- modèles
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 |
Consulter les réservations BI Engine. |
bigquery.bireservations.update |
Mettre à jour les réservations BI Engine. |
bigquery.capacityCommitments.create |
Créer un engagement de capacité dans le projet |
bigquery.capacityCommitments.delete |
Supprimer un engagement de capacité. |
bigquery.capacityCommitments.get |
Récupérer les informations sur un engagement de capacité |
bigquery.capacityCommitments.list |
Répertorier tous les engagements de capacité dans un projet |
bigquery.capacityCommitments.update |
Mettre à jour tous les engagements de capacité dans un projet. |
bigquery.config.update |
Créer une configuration. |
bigquery.config.get |
Obtenir des détails sur une configuration. |
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.updateTag |
Mettre à jour les tags d'une connexion |
bigquery.connections.use |
Utiliser une configuration de connexion pour se connecter à une source de données distante |
bigquery.connections.delegate |
Déléguer la connexion pour créer des tables externes autorisées et des fonctions distantes |
bigquery.dataPolicies.create |
Créer des règles de données |
bigquery.dataPolicies.delete |
Supprimer les stratégies de données |
bigquery.dataPolicies.get |
Obtenir les métadonnées des stratégies de données |
bigquery.dataPolicies.getIamPolicy |
Lire les autorisations IAM d'une stratégie de données |
bigquery.dataPolicies.list |
Répertorier les stratégies de données dans un projet |
bigquery.dataPolicies.maskedGet |
Afficher les données masquées d'une colonne à laquelle un tag avec stratégie est associé. |
bigquery.dataPolicies.setIamPolicy |
Définir les autorisations IAM d'une stratégie de données |
bigquery.dataPolicies.update |
Mettre à jour les métadonnées d'une stratégie de données |
bigquery.datasets.create |
Créer des ensembles de données vides |
bigquery.datasets.createTagBinding |
Créer des liaisons de tags sur un ensemble de données |
bigquery.datasets.delete |
Supprimer un ensemble de données |
bigquery.datasets.deleteTagBinding |
Supprimer des liaisons de tags sur un ensemble de données |
bigquery.datasets.get |
Obtenir les métadonnées d'un ensemble de données |
bigquery.datasets.getIamPolicy |
Requis par la console Cloud pour permettre à l'utilisateur d'obtenir les autorisations IAM d'un ensemble de données. Ne s'ouvre pas. La capacité à effectuer l'opération d'obtention des autorisations est régulée par l'autorisation bigquery.datasets.get . |
bigquery.datasets.link |
Créer un ensemble de données associé. |
bigquery.datasets.listTagBindings |
Répertorier les liaisons de tags sur un ensemble de données. |
bigquery.datasets.setIamPolicy |
Requis par la console Cloud pour permettre à l'utilisateur de définir les autorisations IAM d'un ensemble de données. Ne s'ouvre pas. La capacité à effectuer l'opération de définition des autorisations est régulée par l'autorisation bigquery.datasets.update . |
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.1 |
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.listExecutionMetadata (version bêta) |
Répertorier toutes les métadonnées d'exécution de la tâche (sans informations sensibles) sur les tâches envoyées par un utilisateur Elle ne peut être appliquée qu'au niveau de l'organisation et est utilisée par l'interface administrateur. |
bigquery.jobs.delete |
Supprimez les métadonnées d'une tâche. |
bigquery.jobs.update |
Annuler n'importe quelle tâche.1 |
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 Read. |
bigquery.readsessions.getData |
Lire des données d'une session de lecture via l'API Storage Read. |
bigquery.readsessions.update |
Mettre à jour une session de lecture via l'API Storage Read |
bigquery.reservations.create |
Créer une réservation dans un projet |
bigquery.reservations.delete |
Supprimer une réservation |
bigquery.reservations.get |
Récupérer les informations sur une réservation |
bigquery.reservations.list |
Répertorier toutes les réservations d'un projet. |
bigquery.reservations.update |
Mettre à jour les propriétés d'une réservation |
bigquery.reservationAssignments.create |
Créer une attribution de réservation. Cette autorisation est requise pour le projet propriétaire et la ressource affectée. |
bigquery.reservationAssignments.delete |
Supprimer une attribution de réservation. Cette autorisation est requise pour le projet propriétaire et la ressource affectée. |
bigquery.reservationAssignments.list |
Répertorier toutes les attributions de réservation dans un projet. |
bigquery.reservationAssignments.search |
Rechercher une attribution de réservation pour un projet, un dossier ou une organisation spécifique. |
bigquery.rowAccessPolicies.create |
Créer une règle d'accès au niveau des lignes dans une table. |
bigquery.rowAccessPolicies.delete |
Supprimer une règle d'accès au niveau des lignes d'une table. |
bigquery.rowAccessPolicies.getFilteredData |
Récupère les données d'une table que vous souhaitez afficher uniquement aux comptes principaux de la liste des bénéficiaires d'une règle d'accès au niveau des lignes. Nous vous recommandons d'accorder cette autorisation uniquement sur une ressource de stratégie d'accès au niveau des lignes. |
bigquery.rowAccessPolicies.list |
Répertorier toutes les règles d'accès au niveau des lignes d'une table. |
bigquery.rowAccessPolicies.overrideTimeTravelRestrictions |
Accéder aux données de l'historique d'une table qui dispose ou a déjà eu des règles d'accès au niveau des lignes. |
bigquery.rowAccessPolicies.getIamPolicy |
Obtenir les autorisations IAM d'une règle d'accès aux lignes. |
bigquery.rowAccessPolicies.setIamPolicy |
Définir les autorisations IAM de la règle d'accès aux lignes. |
bigquery.rowAccessPolicies.update |
Recréer une règle d'accès au niveau des lignes. |
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.routines.updateTag |
Mettre à jour les tags d'une 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.createIndex |
Créer des index de recherche sur des tables. |
bigquery.tables.createSnapshot
|
Créer des instantanés de table. |
bigquery.tables.delete |
Supprimer des tables |
bigquery.tables.deleteIndex |
Supprimer des index de recherche sur des tables. |
bigquery.tables.deleteSnapshot
|
Supprimer des instantanés de table. |
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.restoreSnapshot
|
Restaurer des instantanés de table. |
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. |
bigquery.tables.updateData |
Mettre à jour les données d'une table. |
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 |
1 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 | Autorisations |
---|---|
BigQuery Admin( 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. Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :
Contient 18 autorisations de propriétaire |
bigquery.bireservations.*
bigquery.capacityCommitments.*
bigquery.config.*
bigquery.connections.*
bigquery.dataPolicies.create bigquery.dataPolicies.delete bigquery.dataPolicies.get bigquery. bigquery.dataPolicies.list
manage_accounts
bigquery. bigquery.dataPolicies.update bigquery.datasets.*
bigquery.jobs.*
bigquery.models.*
bigquery.readsessions.*
bigquery.
bigquery.reservations.*
bigquery.routines.*
bigquery. bigquery. bigquery. bigquery.
manage_accounts
bigquery.
manage_accounts
bigquery. bigquery. bigquery.savedqueries.*
bigquery.tables.*
bigquery.transfers.*
bigquerymigration. resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Connection Admin(
Contient 2 autorisations de propriétaire |
bigquery.connections.*
|
BigQuery Connection User(
|
bigquery.connections.get bigquery. bigquery.connections.list bigquery.connections.use |
BigQuery Data Editor( Lorsque ce rôle est appliqué à une table ou une vue, il fournit des autorisations permettant d'effectuer les opérations suivantes :
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 :
Lorsque ce rôle est appliqué au niveau du projet ou de l'organisation, il peut également créer des ensembles de données. Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :
|
bigquery.config.get bigquery.datasets.create bigquery.datasets.get bigquery.datasets.getIamPolicy bigquery.datasets.updateTag bigquery.models.*
bigquery.routines.*
bigquery.tables.create bigquery.tables.createIndex bigquery.tables.createSnapshot bigquery.tables.delete bigquery.tables.deleteIndex bigquery.tables.export bigquery.tables.get bigquery.tables.getData bigquery.tables.getIamPolicy bigquery.tables.list bigquery. bigquery.tables.update bigquery.tables.updateData bigquery.tables.updateTag resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Data Owner( Lorsque ce rôle est appliqué à une table ou une vue, il fournit des autorisations permettant d'effectuer les opérations suivantes :
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 :
Lorsque ce rôle est appliqué au niveau du projet ou de l'organisation, il peut également créer des ensembles de données. Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :
Contient 11 autorisations de propriétaire |
bigquery.config.get bigquery.dataPolicies.create bigquery.dataPolicies.delete bigquery.dataPolicies.get bigquery. bigquery.dataPolicies.list
manage_accounts
bigquery. bigquery.dataPolicies.update bigquery.datasets.*
bigquery.models.*
bigquery.routines.*
bigquery. bigquery. bigquery. bigquery.
manage_accounts
bigquery. bigquery. bigquery.tables.*
resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Data Viewer( Lorsque ce rôle est appliqué à une table ou une vue, il fournit des autorisations permettant d'effectuer les opérations suivantes :
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 :
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. Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :
|
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.createSnapshot bigquery.tables.export bigquery.tables.get bigquery.tables.getData bigquery.tables.getIamPolicy bigquery.tables.list resourcemanager.projects.get resourcemanager.projects.list |
Lecteur de données filtrées BigQuery( Accès permettant d'afficher les données de table filtrées en fonction d'une règle d'accès aux lignes Contient 1 autorisation de propriétaire |
manage_accounts
bigquery. |
BigQuery Job User( Fournit des autorisations permettant d'exécuter des tâches, y compris des requêtes, dans le projet. Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :
|
bigquery.config.get bigquery.jobs.create resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Metadata Viewer( Lorsque ce rôle est appliqué à une table ou une vue, il fournit des autorisations permettant d'effectuer les opérations suivantes :
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 :
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 :
Des rôles supplémentaires sont nécessaires pour permettre l'exécution de tâches. Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :
|
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 |
BigQuery Read Session User( Permet de créer et d'utiliser des sessions de lecture. Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :
|
bigquery.readsessions.*
resourcemanager.projects.get resourcemanager.projects.list |
Administrateur de ressources BigQuery( Gérer toutes les ressources BigQuery. Contient 3 autorisations de propriétaire |
bigquery.bireservations.*
bigquery.capacityCommitments.*
bigquery.jobs.get bigquery.jobs.list manage_accounts bigquery.jobs.listAll bigquery.
bigquery.
bigquery.reservations.*
recommender.
recommender.
resourcemanager.projects.get resourcemanager.projects.list |
Éditeur de ressources BigQuery( Gérer toutes les ressources BigQuery, sans pouvoir prendre de décisions d'achat. Contient 1 autorisation de propriétaire |
bigquery.bireservations.get bigquery. bigquery. bigquery.jobs.get bigquery.jobs.list manage_accounts bigquery.jobs.listAll bigquery.
bigquery.
bigquery.reservations.*
resourcemanager.projects.get resourcemanager.projects.list |
Lecteur de ressources BigQuery( Afficher toutes les ressources BigQuery sans pouvoir apporter de modifications ou prendre de décisions d'achat. Contient 1 autorisation de propriétaire |
bigquery.bireservations.get bigquery. bigquery. bigquery.jobs.get bigquery.jobs.list manage_accounts bigquery.jobs.listAll bigquery. bigquery. bigquery. bigquery.reservations.get bigquery.reservations.list resourcemanager.projects.get resourcemanager.projects.list |
BigQuery User( 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 compte principal 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 ( Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :
|
bigquery.bireservations.get bigquery. bigquery. bigquery.config.get bigquery.datasets.create bigquery.datasets.get bigquery.datasets.getIamPolicy bigquery.jobs.create bigquery.jobs.list bigquery.models.list bigquery.readsessions.*
bigquery. bigquery. bigquery.reservations.get bigquery.reservations.list bigquery.routines.list bigquery.savedqueries.get bigquery.savedqueries.list bigquery.tables.list bigquery.transfers.get bigquerymigration. resourcemanager.projects.get resourcemanager.projects.list |
Lecteur masqué( Accès en lecture masquée aux sous-ressources marquées par le tag avec stratégie associé à une stratégie de données, par exemple les colonnes BigQuery Contient 1 autorisation de propriétaire |
manage_accounts
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.
Rôles de base BigQuery
Pour en savoir plus sur les rôles de base pour BigQuery, consultez la page Rôles de base et autorisations BigQuery.
Étapes suivantes
- 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.
- 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.