Prise en charge de la sécurité au niveau des lignes dans Microsoft Azure SQL Data Warehouse

Publié le 7 novembre, 2018

Principal Program Manager, Azure SQL Data Warehouse

Nous annonçons aujourd’hui la disponibilité générale de la sécurité au niveau des lignes pour Microsoft Azure SQL Data Warehouse, une fonctionnalité supplémentaire pour la gestion de la sécurité des données sensibles. Azure SQL Data Warehouse est un entrepôt de données cloud rapide, flexible et sécurisé, conçu pour l’exécution de requêtes complexes sur plusieurs pétaoctets de données.

Lorsque vous déplacez des données dans le cloud, la sécurisation de vos actifs données est essentielle pour établir une confiance avec vos clients et partenaires. Avec l’introduction de la sécurité au niveau des lignes, vous pouvez implémenter des stratégies de sécurité pour contrôler l’accès aux lignes de vos tables, en indiquant qui peut accéder à quelles lignes. La sécurité au niveau des lignes active ce contrôle d’accès affiné sans avoir à repenser votre entrepôt de données. Cela simplifie le modèle de sécurité global, car la logique de restriction d’accès se situe dans la couche de base de données plutôt qu’à l’écart des données d’une autre application. Cette fonctionnalité élimine également le besoin d’introduire des vues pour filtrer les lignes pour la gestion du contrôle d’accès. En outre, la sécurité au niveau des lignes prend en charge l’authentification SQL et l’authentification Azure Active Directory (AAD).

Voici quelques scénarios où la sécurité au niveau des lignes peut être utilisée aujourd’hui :

  • Un fournisseur de soins de santé applique une stratégie de sécurité permettant aux infirmières de ne voir que les lignes de données de leurs propres patients.
  • Une entreprise de services financiers limite l’accès aux lignes de données financières en fonction de la division commerciale de l’employé ou du rôle de l’employé dans l’entreprise.
  • Une application multi-locataire impose la séparation logique des lignes de données de chaque locataire de celles de tous les autres locataires.

Schéma de la sécurité au niveau des lignes

La sécurité au niveau des lignes est une forme de contrôle d’accès basé sur un prédicat qui fonctionne en appliquant automatiquement un prédicat de sécurité à toutes les requêtes d’une table. Le prédicat détermine quels utilisateurs peuvent accéder à quelles lignes. Par exemple, un simple prédicat peut être «WHERE SalesRep = SYSTEM_USER », tandis qu’un prédicat compliqué peut inclure des instructions JOIN afin de rechercher des informations dans d’autres tables.

Il existe deux types de prédicats de sécurité :

  • Les prédicats de filtre filtrent les opérations SELECT, UPDATE et DELETE en mode silencieux pour exclure les lignes qui ne répondent pas au prédicat.
  • Les prédicats BLOCK bloquent explicitement les opérations INSERT, UPDATE et DELETE qui ne satisfont pas le prédicat.

Dans cette version, Azure SQL Data Warehouse ne prend en charge que les prédicats de filtre, tandis que la prise en charge des prédicats BLOCK sera bientôt disponible. De plus, dans cette version, la sécurité au niveau des lignes ne prend pas en charge les tables externes créées via PolyBase.

Pour ajouter un prédicat de sécurité sur une table, vous devez d’abord disposer d’une fonction table inline qui définit vos critères d’accès. Ensuite, vous créez une stratégie de sécurité qui ajoute un prédicat de filtre sur les tables de votre choix, à l’aide de cette fonction. Voici un exemple simple qui empêche les commerciaux d’accéder aux lignes d’une table clients qui ne leur sont pas attribuées :

CREATE SCHEMA security;

CREATE FUNCTION security.customerPredicate(@SalesRepName AS sysname)
RETURNS TABLE
    WITH SCHEMABINDING
AS
    RETURN SELECT 1 AS accessResult
WHERE @SalesRepName = SYSTEM_USER OR SYSTEM_USER = 'Manager';
go

CREATE SECURITY POLICY security.customerAccessPolicy
ADD FILTER PREDICATE security.customerPredicate(SalesRepName) ON dbo.Customers
WITH (STATE = ON);
go

Cette fonctionnalité est maintenant disponible dans toutes les régions Azure sans frais supplémentaires. Le déploiement a été effectué dans quelques régions, l’objectif étant de terminer le déploiement mondial dans les deux prochaines semaines. Azure SQL Data Warehouse continue à jouer un rôle de premier plan dans les domaines de la sécurité, de la conformité, de la confidentialité et de l’audit.

Étapes suivantes