Comment implémenter un masquage dynamique des données dans Synapse Data Warehouse

S’applique à :✅ point de terminaison d’analytique SQL et entrepôt dans Microsoft Fabric

Le masquage dynamique des données est une technologie de protection des données de pointe qui aide les organisations à protéger les informations sensibles au sein de leurs bases de données. Il vous permet de définir des règles de masquage pour des colonnes spécifiques, ce qui garantit que seuls les utilisateurs autorisés voient les données d’origine tout en les masquant pour les autres. Le masquage dynamique des données fournit une couche de sécurité supplémentaire en modifiant dynamiquement les données présentées aux utilisateurs, en fonction de leurs autorisations d’accès.

Pour plus d’informations, consultez Masquage dynamique des données dans l’entrepôt de données Fabric.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  1. Un espace de travail Microsoft Fabric avec une capacité active ou une capacité d’essai.
  2. Un Entrepôt.
    1. Le masquage dynamique des données fonctionne sur le point de terminaison d’analyse SQL. Vous pouvez ajouter des masques à des colonnes existantes en utilisant ALTER TABLE ... ALTER COLUMN comme illustré plus loin dans cet article.
    2. Cet exercice utilise un Entrepôt.
  3. Pour administrer, un utilisateur disposant des droits d’administrateur, de membre ou de contributeur sur l’espace de travail, soit des autorisations élevées sur l’Entrepôt.
    1. Dans ce tutoriel, le « compte administrateur ».
  4. Pour tester, les utilisateurs sans les droits Administrateur, Membre ou Contributeur sur l’espace de travail, et sans autorisations élevées sur l’Entrepôt.
    1. Dans ce tutoriel, l’« utilisateur test ».

1. Se connecter

  1. Ouvrez l’espace de travail Fabric et accédez à l’Entrepôt auquel vous souhaitez appliquer un masquage dynamique des données.
  2. Connectez-vous à l’aide d’un compte disposant d’un accès élevé sur l’Entrepôt, que ce soit un rôle d’Administrateur/Membre/Contributeur sur l’espace de travail ou des autorisations de contrôle sur l’Entrepôt.

2. Configurer le masquage dynamique des données

  1. Connectez-vous au portail Fabric avec votre compte administrateur.

  2. Dans l’espace de travail Fabric, accédez à votre entrepôt.

  3. Sélectionnez l’option Nouvelle requête SQL, puis sous Vide, sélectionnez Nouvelle requête SQL.

  4. Dans votre script SQL, définissez des règles de masquage des données dynamiques à l’aide de la clause MASKED WITH FUNCTION. Par exemple :

    CREATE TABLE dbo.EmployeeData (
        EmployeeID INT
        ,FirstName VARCHAR(50) MASKED WITH (FUNCTION = 'partial(1,"-",2)') NULL
        ,LastName VARCHAR(50) MASKED WITH (FUNCTION = 'default()') NULL
        ,SSN CHAR(11) MASKED WITH (FUNCTION = 'partial(0,"XXX-XX-",4)') NULL
        ,email VARCHAR(256) NULL
        );
    GO
    INSERT INTO dbo.EmployeeData
        VALUES (1, 'TestFirstName', 'TestLastName', '123-45-6789','email@youremail.com');
    GO
    INSERT INTO dbo.EmployeeData
        VALUES (2, 'First_Name', 'Last_Name', '000-00-0000','email2@youremail2.com');
    GO
    
    • La colonne FirstName affiche uniquement les deux premiers et les deux derniers caractères de la chaîne, avec - au milieu.
    • La colonne LastName affiche XXXX.
    • La SSNcolonne affiche XXX-XX- suivi des quatre derniers caractères de la chaîne.
  5. Sélectionnez le bouton Exécuter pour exécuter le script.

  6. Confirmez l’exécution du script.

  7. Le script applique les règles de masquage des données dynamiques spécifiées aux colonnes désignées de votre table.

3. Tester le masquage dynamique des données

Une fois les règles de masquage de données dynamiques appliquées, vous pouvez tester le masquage en interrogeant la table avec un utilisateur de test qui n’a pas les droits Administrateur, Membre ou Contributeur sur l’espace de travail, ni des autorisations élevées sur l’Entrepôt.

  1. Connectez-vous à un outil tel qu’Azure Data Studio ou SQL Server Management Studio en tant qu’utilisateur test, par exemple TestUser@contoso.com.
  2. En tant qu’utilisateur test, exécutez une requête sur la table. Les données masquées sont affichées en fonction des règles que vous avez définies.
    SELECT * FROM dbo.EmployeeData;
    
  3. Avec votre compte administrateur, accordez l’autorisation UNMASK de l’utilisateur test.
    GRANT UNMASK ON dbo.EmployeeData TO [TestUser@contoso.com];
    
  4. En tant qu’utilisateur test, vérifiez qu’un utilisateur qui s’est connecté en tant que TestUser@contoso.com peut voir les données non masquées.
    SELECT * FROM dbo.EmployeeData;
    
  5. Avec votre compte administrateur, accordez l’autorisation UNMASK de l’utilisateur test.
    REVOKE UNMASK ON dbo.EmployeeData TO [TestUser];
    
  6. Vérifiez que l’utilisateur test ne peut pas voir les données non masquées, uniquement les données masquées.
    SELECT * FROM dbo.EmployeeData;
    
  7. Avec votre compte administrateur, vous pouvez accorder et révoquer l’autorisation UNMASK à un rôle
    GRANT UNMASK ON dbo.EmployeeData TO [TestRole];
    REVOKE UNMASK ON dbo.EmployeeData TO [TestRole];
    

4. Gérer et modifier des règles de masquage des données dynamiques

Pour gérer ou modifier des règles de masquage de données dynamiques existantes, créez un script SQL.

  1. Vous pouvez ajouter un masque à une colonne existante à l’aide de la clause MASKED WITH FUNCTION :

    ALTER TABLE dbo.EmployeeData
    ALTER COLUMN [email] ADD MASKED WITH (FUNCTION = 'email()');
    GO
    
    ALTER TABLE dbo.EmployeeData 
    ALTER COLUMN [email] DROP MASKED;
    

5. Nettoyage

  1. Pour nettoyer cette table de test :
    DROP TABLE dbo.EmployeeData;