Contrôle des accès avec IAM
Cette page fournit des informations sur les rôles et les autorisations Identity and Access Management (IAM) pour BigQuery. Avant de configurer le contrôle des accès pour BigQuery, vous pouvez vous familiariser avec la gestion de l'accès à Google Cloud avec IAM.
Vous aurez également besoin de conseils détaillés sur les rôles et les autorisations pour les services BigQuery suivants :
Aperçu
Lorsqu'une identité (un utilisateur ou un compte de service) 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
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 Cette autorisation est disponible en version bêta. |
bigquery.dataPolicies.delete |
Supprimer les stratégies de données Cette autorisation est disponible en version bêta. |
bigquery.dataPolicies.get |
Obtenir les métadonnées des stratégies de données Cette autorisation est disponible en version bêta. |
bigquery.dataPolicies.getIamPolicy |
Lire les autorisations IAM d'une stratégie de données Cette autorisation est disponible en version bêta. |
bigquery.dataPolicies.list |
Répertorier les stratégies de données dans un projet Cette autorisation est disponible en version bêta. |
bigquery.dataPolicies.maskedGet |
Afficher les données masquées d'une colonne à laquelle un tag avec stratégie est associé. Cette autorisation est disponible en version bêta. |
bigquery.dataPolicies.setIamPolicy |
Définir les autorisations IAM d'une stratégie de données Cette autorisation est disponible en version bêta. |
bigquery.dataPolicies.update |
Mettre à jour les métadonnées d'une stratégie de données Cette autorisation est disponible en version bêta. |
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 |
Lire les autorisations IAM d'un ensemble de données. |
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 |
Modifier les autorisations IAM d'un ensemble de données. |
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 |
---|---|
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. Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :
|
|
Administrateur de connexion BigQuery
|
|
Utilisateur de connexion BigQuery
|
|
É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 :
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 :
|
|
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 :
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 :
|
|
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 :
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 :
|
|
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 |
|
Utilisateur de tâche BigQuery
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 :
|
|
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 :
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 :
|
|
Utilisateur de sessions de lecture BigQuery
Accès permettant de créer et d'utiliser des sessions de lecture |
|
Administrateur de ressources BigQuery
Gérer toutes les ressources BigQuery. |
|
Éditeur de ressources BigQuery
Gérer toutes les ressources BigQuery, sans pouvoir prendre de décisions d'achat. |
|
Lecteur de ressources BigQuery
Afficher toutes les ressources BigQuery sans pouvoir apporter de modifications ou prendre de décisions d'achat. |
|
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 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 :
|
|
Lecteur masqué
Bêta
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 |
|
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.
Étape suivante
- Consultez les exemples de contrôle des accès dans BigQuery.
- 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.