Masquer les données de colonne

Ce document explique comment implémenter le masquage de données afin d'obscurcir de manière sélective les données sensibles. En implémentant le masquage de données, vous pouvez fournir différents niveaux de visibilité à différents groupes d'utilisateurs. Pour obtenir des informations générales, consultez la page Présentation du masquage des données.

Vous mettez en œuvre le masquage de données en ajoutant une stratégie de données à une colonne. Pour ajouter une règle de masquage de données à une colonne, procédez comme suit :

  1. Créez une taxonomie avec au moins un tag avec stratégie.
  2. Facultatif : attribuez le rôle "Lecteur détaillé Data Catalog" à un ou plusieurs comptes principaux sur un ou plusieurs tags avec stratégie que vous avez créés.
  3. Créez jusqu'à trois stratégies de données pour le tag avec stratégie, afin de mapper les règles de masquage et les comptes principaux (qui représentent des utilisateurs ou des groupes) à ce tag.
  4. Définissez le tag avec stratégie sur une colonne. Cela mappe les stratégies de données associées au tag avec stratégie à la colonne sélectionnée.
  5. Attribuez le rôle Lecteur masqué BigQuery aux utilisateurs qui doivent avoir accès aux données masquées. Nous vous recommandons d'attribuer le rôle de lecteur masqué BigQuery au niveau de la stratégie de données. L'attribution du rôle au niveau du projet ou à un niveau supérieur accorde aux utilisateurs des autorisations sur toutes les stratégies de données du projet, ce qui peut entraîner des problèmes en raison d'autorisations en excès.

Vous pouvez utiliser la console Google Cloud ou l'API BigQuery Data Policy pour travailler avec les règles relatives aux données.

Une fois ces étapes terminées, les utilisateurs exécutant des requêtes sur la colonne obtiennent des données non masquées, des données masquées ou une erreur d'accès refusé, en fonction des groupes auxquels ils appartiennent et des rôles qui leur ont été attribués. Pour en savoir plus, consultez la section Interaction des rôles Lecteur masqué et Lecteur détaillé.

Avant de commencer

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Data Catalog and BigQuery Data Policy APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Data Catalog and BigQuery Data Policy APIs.

    Enable the APIs

  8. BigQuery est automatiquement activé dans les nouveaux projets, mais vous devrez peut-être l'activer dans un projet préexistant.

    Enable the BigQuery API.

    Enable the API

  9. Si vous créez une stratégie de données qui fait référence à une routine de masquage personnalisée, créez la fonction de masquage définie par l'utilisateur associée afin qu'elle soit disponible dans les étapes suivantes.

Créer des catégories

L'utilisateur ou le compte de service qui crée une taxonomie doit disposer du rôle "Administrateur de tags avec stratégie Data Catalog".

Console

  1. Ouvrez la page Catégories de tags avec stratégie dans la console Google Cloud.

    Ouvrir la page Catégories de tags avec stratégie

  2. Cliquez sur Créer une taxonomie.
  3. Sur la page Nouvelle taxonomie :

    1. Dans le champ Nom de la taxonomie, saisissez le nom de la taxonomie à créer.
    2. Dans le champ Description, saisissez une description.
    3. Si nécessaire, modifiez le projet répertorié sous Project (Projet).
    4. Si nécessaire, modifiez l'emplacement répertorié sous Location (Emplacement).
    5. Sous Policy Tags (Tags avec stratégie), saisissez un nom et une description de tag avec stratégie.
    6. Pour ajouter un tag avec stratégie enfant à un tag avec stratégie, cliquez sur Ajouter un sous-tag.
    7. Pour ajouter un tag avec stratégie au même niveau qu'un autre tag, cliquez sur + Ajouter un tag avec stratégie.
    8. Continuez à ajouter des tags avec stratégie et des tags avec stratégie enfant selon les besoins de votre taxonomie.
    9. Lorsque vous avez fini de créer des tags avec stratégie pour votre hiérarchie, cliquez sur Enregistrer.

API

Pour utiliser les taxonomies existantes, appelez taxonomies.import à la place des deux premières étapes de la procédure suivante.

  1. Appelez taxonomies.create pour créer une taxonomie.
  2. Appelez taxonomies.policytag.create pour créer un tag avec stratégie.

Utiliser des tags avec stratégie

Pour en savoir plus sur l'utilisation des tags avec stratégie, comme leur affichage ou leur mise à jour, consultez la section Utiliser des tags avec stratégie. Pour en savoir plus sur les bonnes pratiques, consultez la page Bonnes pratiques d'utilisation des tags avec stratégie dans BigQuery.

Créer des stratégies de données

L'utilisateur ou le compte de service qui crée une stratégie de données doit disposer des autorisations bigquery.dataPolicies.create, bigquery.dataPolicies.setIamPolicy et datacatalog.taxonomies.get.

Les autorisations bigquery.dataPolicies.create et bigquery.dataPolicies.setIamPolicy sont incluses dans les rôles "Administrateur de la stratégie de données BigQuery", "Administrateur BigQuery" et "Propriétaire de données BigQuery". L'autorisation datacatalog.taxonomies.get est incluse dans les rôles "Administrateur Data Catalog" et "Lecteur Data Catalog".

Si vous créez une stratégie de données qui fait référence à une routine de masquage personnalisée, vous avez également besoin d'autorisations de routine.

En cas de masquage personnalisé, attribuez aux utilisateurs les rôles "Administrateur BigQuery" ou "Propriétaire de données BigQuery" pour vous assurer qu'ils disposent des autorisations nécessaires pour les routines et les règles de données.

Vous pouvez créer jusqu'à neuf règles de données pour un tag avec stratégie. L'une de ces règles est réservée aux paramètres de contrôle des accès au niveau des colonnes.

Console

  1. Ouvrez la page Catégories de tags avec stratégie dans la console Google Cloud.

    Ouvrir la page Catégories de tags avec stratégie

  2. Cliquez sur le nom de la taxonomie à ouvrir.
  3. Sélectionnez un tag avec stratégie.
  4. Cliquez sur Gérer les stratégies des données.
  5. Dans Nom de la stratégie de données, saisissez un nom pour la stratégie de données. Le nom de la stratégie de données doit être unique dans le projet dans lequel se trouve la stratégie de données.
  6. Pour Règle de masquage, choisissez une règle de masquage prédéfinie ou une routine de masquage personnalisée. Si vous sélectionnez une routine de masquage personnalisée, assurez-vous de disposer des autorisations bigquery.routines.get et bigquery.routines.list au niveau du projet.
  7. Dans Principal, saisissez le nom d'un ou de plusieurs utilisateurs ou groupes auxquels vous souhaitez accorder un accès masqué à la colonne. Notez que tous les utilisateurs et groupes que vous saisissez ici se voient attribuer le rôle de lecteur masqué BigQuery.
  8. Cliquez sur Envoyer.

API

  1. Appelez la méthode create. Transmettez une ressource DataPolicy qui répond aux exigences suivantes :

    • Le champ dataPolicyType est défini sur DATA_MASKING_POLICY.
    • Le champ dataMaskingPolicy identifie la règle ou la routine de masquage de données à utiliser.
    • Le champ dataPolicyId fournit un nom pour la stratégie de données qui est unique dans le projet dans lequel se trouve la stratégie de données.
  2. Appelez la méthode setIamPolicy et transmettez un objet Policy. Policy doit identifier les comptes principaux autorisés à accéder aux données masquées et spécifier roles/bigquerydatapolicy.maskedReader pour le champ role.

Définir des tags avec stratégie sur des colonnes

Définissez une stratégie de données sur une colonne en associant la colonne au tag avec stratégie associé à la stratégie de données.

L'utilisateur ou le compte de service qui définit un tag avec stratégie a besoin des autorisations datacatalog.taxonomies.get et bigquery.tables.setCategory. datacatalog.taxonomies.get est inclus dans les rôles "Administrateur de tags avec stratégie Data Catalog" et "Lecteur de projet". bigquery.tables.setCategory est inclus dans les rôles "Administrateur BigQuery" (roles/bigquery.admin) et "Propriétaire de données BigQuery" (roles/bigquery.dataOwner).

Pour afficher les taxonomies et les tags de règles dans tous les projets d'une organisation dans la console Google Cloud, les utilisateurs ont besoin de l'autorisation resourcemanager.organizations.get, qui est incluse dans le rôle Lecteur de l'organisation.

Console

Définissez le tag avec stratégie en modifiant un schéma à l'aide de la console Google Cloud.

  1. Ouvrez la page BigQuery dans la console Google Cloud.

    Accéder à BigQuery

  2. Dans l'explorateur BigQuery, localisez et sélectionnez la table que vous souhaitez mettre à jour. Le schéma de la table s'ouvre.

  3. Cliquez sur Modifier le schéma.

  4. Dans l'écran Current schema (Schéma actuel), sélectionnez la colonne cible, puis cliquez sur Add policy tag (Ajouter un tag avec stratégie).

  5. Dans l'écran Add policy tag (Ajouter un tag avec stratégie), sélectionnez le tag avec stratégie que vous souhaitez appliquer à la colonne.

  6. Cliquez sur Select (Sélectionner). L'écran qui s'affiche devrait se présenter comme ceci :

    Modifier le schéma.

  7. Cliquez sur Enregistrer.

bq

  1. Enregistrez le schéma dans un fichier local.

    bq show --schema --format=prettyjson \
       project-id:dataset.table > schema.json

    où :

    • project-id est l'ID de votre projet.
    • dataset est le nom de l'ensemble de données contenant la table que vous mettez à jour.
    • table est le nom de la table que vous mettez à jour.
  2. Modifiez le fichier schema.json pour définir un tag avec stratégie sur une colonne. Pour la valeur du champ names de policyTags, utilisez le nom de ressource du tag avec stratégie.

    [
     ...
     {
       "name": "ssn",
       "type": "STRING",
       "mode": "REQUIRED",
       "policyTags": {
         "names": ["projects/project-id/locations/location/taxonomies/taxonomy-id/policyTags/policytag-id"]
       }
     },
     ...
    ]
  3. Mettez à jour le schéma.

    bq update \
       project-id:dataset.table schema.json

API

Pour les tables existantes, appelez tables.patch ou, pour les nouvelles tables, appelez tables.insert. Utilisez la propriété schema de l'objet Table que vous transmettez pour définir un tag avec stratégie dans votre définition de schéma. Consultez l'exemple de schéma de ligne de commande pour savoir comment définir un tag avec stratégie.

Lorsque vous utilisez une table existante, la méthode tables.patch est préférable, car la méthode tables.update remplace l'intégralité de la ressource de table.

Appliquer le contrôle des accès

Lorsque vous créez une stratégie de données pour un tag avec stratégie, le contrôle des accès est automatiquement appliqué. Toutes les colonnes auxquelles ce tag avec stratégie est appliqué renvoient des données masquées en réponse aux requêtes des utilisateurs disposant du rôle "Lecteur masqué".

Pour arrêter l'application du contrôle des accès, vous devez d'abord supprimer toutes les stratégies de données associées aux tags avec stratégie de la taxonomie. Pour en savoir plus, consultez la section Appliquer le contrôle des accès.

Vérifier les autorisations IAM sur une stratégie de données

Pour connaître les autorisations dont vous disposez sur une stratégie de données, appelez la méthode testIamPermissions.

Mettre à jour les stratégies des données

L'utilisateur ou le compte de service qui met à jour une stratégie de données doit disposer de l'autorisation bigquery.dataPolicies.update. Si vous mettez à jour le tag avec stratégie associé à la stratégie de données, vous devez également disposer de l'autorisation datacatalog.taxonomies.get.

Si vous mettez à jour les comptes principaux associés à la stratégie de données, vous devez disposer de l'autorisation bigquery.dataPolicies.setIamPolicy.

Les autorisations bigquery.dataPolicies.update et bigquery.dataPolicies.setIamPolicy sont incluses dans les rôles "Administrateur de la stratégie de données BigQuery", "Administrateur BigQuery" et "Propriétaire de données BigQuery". L'autorisation datacatalog.taxonomies.get est incluse dans les rôles "Administrateur Data Catalog" et "Lecteur Data Catalog".

Console

  1. Ouvrez la page Catégories de tags avec stratégie dans la console Google Cloud.

    Ouvrir la page Catégories de tags avec stratégie

  2. Cliquez sur le nom de la taxonomie à ouvrir.
  3. Sélectionnez un tag avec stratégie.
  4. Cliquez sur Gérer les stratégies des données.
  5. Vous pouvez également modifier la stratégie de masquage.
  6. Facultatif : ajoutez ou supprimez des comptes principaux.
  7. Cliquez sur Envoyer.

API

Pour modifier la stratégie de masquage de données, appelez la méthode patch et transmettez une ressource DataPolicy avec un champ dataMaskingPolicy mis à jour.

Pour modifier les comptes principaux associés à une stratégie de données, appelez la méthode setIamPolicy et transmettez un objet Policy qui met à jour les comptes principaux autorisés à accéder aux données masquées.

Supprimer les stratégies de données

L'utilisateur ou le compte de service qui crée une stratégie de données doit disposer de l'autorisation bigquery.dataPolicies.delete. Cette autorisation est incluse dans les rôles "Administrateur de la stratégie de données BigQuery", "Administrateur BigQuery" et "Propriétaire de données BigQuery".

Console

  1. Ouvrez la page Catégories de tags avec stratégie dans la console Google Cloud.

    Ouvrir la page Catégories de tags avec stratégie

  2. Cliquez sur le nom de la taxonomie à ouvrir.
  3. Sélectionnez un tag avec stratégie.
  4. Cliquez sur Gérer les stratégies des données.
  5. Cliquez sur à côté de la stratégie de données à supprimer.
  6. Cliquez sur Envoyer.
  7. Cliquez sur Confirmer.

API

Pour supprimer une stratégie de données, appelez la méthode delete.