Vues autorisées

Ce document explique comment créer des vues autorisées et des vues matérialisées autorisées dans BigQuery.

Présentation

En tant qu'administrateur de données, vous pouvez créer une vue autorisée pour partager un sous-ensemble de données d'un ensemble de données avec des utilisateurs et des groupes (principaux) spécifiques. Les principaux peuvent afficher les données que vous partagez et y exécuter des requêtes, mais ils ne peuvent pas accéder directement à l'ensemble de données source.

Types de vues

Une vue logique est le type de vue par défaut de BigQuery, et une vue matérialisée est une vue précalculée qui met régulièrement en cache les résultats d'une requête pour améliorer les performances et l'efficacité.

Une vue autorisée pour une vue logique est appelée "vue autorisée", mais une vue autorisée pour une vue matérialisée est appelée vue matérialisée autorisée.

Si une vue logique s'appuie sur une requête volumineuse ou exigeante en puissance de calcul, vous pouvez créer une vue matérialisée à la place. Toutefois, interroger uniquement un sous-ensemble de vos données ou utiliser d'autres techniques peut souvent améliorer les performances sans avoir à créer une vue materialisée.

Pour en savoir plus, consultez les ressources suivantes :

Étapes générales pour créer des vues autorisées

Pour créer et partager une vue, consultez ces étapes générales, qui sont les mêmes pour les vues logiques autorisées et les vues matérialisées autorisées.

  • Créez un ensemble de données contenant vos données sources.
  • Exécutez une requête pour charger des données dans une table de destination de l'ensemble de données source.
  • Créez un ensemble de données pour contenir votre vue autorisée.
  • Créez une vue autorisée à partir d'une requête SQL qui limite les colonnes que vos analystes de données peuvent voir dans les résultats de la requête.
  • Accordez à vos analystes de données l'autorisation d'exécuter des tâches de requête.
  • Accordez à vos analystes de données l'accès à l'ensemble de données contenant la vue autorisée.
  • Accordez à la vue autorisée l'accès à l'ensemble de données source.

Alternatives

Bien que les vues autorisées soient flexibles et évolutives, l'une des méthodes suivantes peut être plus adaptée à votre cas d'utilisation:

  • Définir des règles au niveau des lignes dans une table.
  • Définir des règles au niveau des colonnes dans une table
  • Stockez les données dans une table distincte.
  • Partager toutes les vues d'un ensemble de données (ensembles de données autorisés)

Utiliser la sécurité au niveau des lignes ou des colonnes, ou des tables distinctes

En définissant des règles d'accès au niveau des lignes sur une table ou en créant une table distincte pour contenir des données sensibles, un administrateur de données peut limiter la possibilité pour un utilisateur d'afficher ces données. Stocker des données dans une table distincte les isole et empêche de voir le nombre de lignes de la table.

En outre, en créant et en appliquant des tags avec stratégie, un administrateur de données peut limiter la possibilité pour l'utilisateur d'afficher les colonnes d'un tableau.

Stocker les données dans une table distincte est la méthode la plus sécurisée, mais aussi la moins flexible. Le paramétrage de règles au niveau des lignes est flexible et sécurisé, tandis que le partage de vues autorisées est flexible et offre les meilleures performances.

Pour comparer ces méthodes en détail, consultez les ressources suivantes:

Partager toutes les vues d'un ensemble de données

Si vous souhaitez autoriser un ensemble de vues à accéder à un ensemble de données sans avoir à autoriser individuellement chaque vue, vous pouvez regrouper les vues dans un ensemble de données, puis autoriser l'ensemble de données qui contient les vues à accéder à l'ensemble de données contenant les données.

Vous pouvez ensuite accorder aux comptes principaux l'accès à l'ensemble de données contenant le groupe de vues, ou à des vues individuelles de l'ensemble de données, le cas échéant. Un ensemble de données ayant accès à un autre ensemble de données est appelé ensemble de données autorisé. L'ensemble de données qui autorise un autre ensemble de données à accéder à ses données est appelé ensemble de données partagé.

Pour en savoir plus, consultez les sections Ensembles de données autorisés et Autoriser un ensemble de données.

Limites

  • Lorsque vous créez une vue autorisée ou une vue matérialisée autorisée dans un autre ensemble de données, l'ensemble de données des données source et l'ensemble de données de la vue autorisée doivent se trouver dans le même emplacement régional.
  • Lorsque vous supprimez une vue autorisée, sa suppression de la liste des vues peut prendre jusqu'à 24 heures. Pendant ce délai, vous ne pouvez plus accéder à la vue autorisée mais elle peut tout de même apparaître dans la liste des vues et est comptabilisée dans la limite de vues autorisées. Cette limite peut empêcher la création de vues autorisées supplémentaires si la nouvelle vue autorisée entraîne un dépassement de cette limite.

Avant de commencer

Attribuez des rôles IAM (Identity and Access Management) qui donnent aux utilisateurs les autorisations nécessaires pour interroger les vues autorisées ou les vues materialisées autorisées que vous partagez.

Rôles requis

Pour créer ou mettre à jour une vue autorisée, vous devez disposer d'autorisations sur l'ensemble de données qui contient la vue et sur celui qui lui donne accès.

Vous devez également accorder aux utilisateurs ou aux groupes l'accès au projet et à l'ensemble de données contenant la vue.

Autorisations d'administrateur sur l'ensemble de données contenant la vue

Les vues sont traitées comme des ressources de table dans BigQuery. Par conséquent, la création d'une vue nécessite les mêmes autorisations que la création d'une table. Vous devez également être autorisé à interroger les tables référencées par la requête SQL de la vue.

Pour créer une vue, vous avez besoin de l'autorisation IAM bigquery.tables.create. Le rôle IAM prédéfini roles/bigquery.dataEditor inclut les autorisations dont vous avez besoin pour créer une vue.

En outre, si vous disposez de l'autorisation bigquery.datasets.create, vous pouvez créer des vues dans les ensembles de données que vous créez. Pour créer une vue pour des données qui ne vous appartiennent pas, vous devez disposer de l'autorisation bigquery.tables.getData pour cette table.

Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.

Autorisations d'administrateur sur le deuxième ensemble de données donnant accès à la vue

Pour mettre à jour les propriétés d'un ensemble de données, vous devez disposer des autorisations IAM suivantes :

  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy (obligatoire uniquement lors de la mise à jour des contrôles d'accès d'un ensemble de données dans la console Google Cloud)

Le rôle IAM prédéfini roles/bigquery.dataOwner inclut les autorisations dont vous avez besoin pour mettre à jour les propriétés d'un ensemble de données.

En outre, si vous disposez de l'autorisation bigquery.datasets.create, vous pouvez mettre à jour les propriétés des ensembles de données que vous créez.

Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.

Autorisations des utilisateurs sur le projet et l'ensemble de données de la vue

Pour partager une vue autorisée avec des utilisateurs ou des groupes, vous devez leur accorder les autorisations IAM suivantes:

  • Le rôle IAM roles/bigquery.user au projet contenant la vue autorisée.
  • Le rôle IAM roles/bigquery-data-viewer à l'ensemble de données contenant la vue autorisée.

Utiliser des vues autorisées

Les sections suivantes décrivent comment utiliser les vues autorisées et les vues materialisées autorisées.

Créer, partager et supprimer une vue autorisée

Pour connaître la procédure complète d'autorisation, de partage et de suppression d'une vue autorisée, consultez le tutoriel Créer une vue autorisée.

Gérer les utilisateurs ou les groupes pour les vues autorisées

Une fois qu'une vue a été autorisée, vous pouvez conserver l'accès en effectuant les tâches suivantes pour un ensemble de données, une table ou une vue:

  • Afficher la stratégie d'accès
  • Accordez l'accès.
  • Révoquer l'accès.
  • Refusez l'accès.

Pour en savoir plus, consultez la section Contrôler l'accès aux ressources à l'aide d'IAM.

Supprimer une autorisation associée à une vue

Pour supprimer une autorisation d'affichage, sélectionnez l'une des options suivantes:

Console

  1. Accédez à la page "BigQuery" de la console Google Cloud.

    Accéder à BigQuery

  2. Dans le volet Explorateur, développez votre projet et sélectionnez un ensemble de données.

  3. Cliquez sur Partage > Autoriser les vues.

  4. Cliquez sur  pour supprimer l'autorisation.

  5. Cliquez sur Fermer.

bq

Pour supprimer l'autorisation d'une vue, utilisez la commande bq rm. Saisissez l'table_id de la vue dont vous souhaitez supprimer l'autorisation.

    bq rm \
    project_id:dataset:table_id
    

API

Appelez la méthode tables.delete,puis utilisez les propriétés projectID, datasetID et tableID pour supprimer la vue autorisée de votre ensemble de données. Pour en savoir plus, consultez la section Tables.

Quotas et limites

  • Les vues autorisées sont soumises à des limites. Pour en savoir plus, consultez la section Limites des ensembles de données.
  • Si vous supprimez une vue autorisée, la suppression de toutes les références à la vue dans le système peut prendre jusqu'à 24 heures. Pour éviter les erreurs, attendez 24 heures avant de réutiliser le nom d'une vue supprimée ou utilisez un nom unique.

Rubriques avancées

Les sections suivantes décrivent des méthodes avancées d'utilisation des vues autorisées.

Combiner la sécurité au niveau des lignes avec des vues autorisées

Les données affichées dans une vue logique ou une vue matérialisée sont filtrées en fonction des règles d'accès au niveau des lignes de la table source sous-jacente.

Pour en savoir plus sur l'interaction de la sécurité au niveau des lignes avec les vues matérialisées, consultez la page Utiliser la sécurité au niveau des lignes avec d'autres fonctionnalités BigQuery.

Combiner la sécurité au niveau des colonnes avec des vues autorisées

L'impact de la sécurité au niveau des colonnes sur une vue ne dépend pas du fait qu'il s'agisse ou non d'une vue autorisée.

Pour une description détaillée de l'application des autorisations, consultez la section Vues de requête pour la sécurité au niveau des colonnes.

Utiliser Analytics Hub avec des vues autorisées

Analytics Hub est une plate-forme d'échange de données qui offre les fonctionnalités suivantes:

  • Vous permet de partager des données et des insights à grande échelle à travers les limites organisationnelles.
  • Utilise un framework de sécurité et de confidentialité robuste.
  • Permet de publier un ensemble de données BigQuery, appelé ensemble de données partagé, ainsi que les vues et les ensembles de données autorisés associés, auprès d'un ensemble d'abonnés.

Un ensemble de données associé est un ensemble de données BigQuery en lecture seule qui sert de pointeur ou de référence à un ensemble de données partagé. L'abonnement à une fiche Analytics Hub crée un ensemble de données associé dans votre projet, mais pas une copie de l'ensemble de données. Les abonnés peuvent donc lire les données, mais ne peuvent pas lui ajouter des objets ni mettre à jour les objets qu'il contient.

Les vues matérialisées faisant référence à des tables de l'ensemble de données associé ne sont pas acceptées.

Pour en savoir plus, consultez la section Présentation d'Analytics Hub.

Étape suivante