Partager via


Contrôle d'accès basé sur les attributs du catalogue Unity (ABAC)

Important

Cette fonctionnalité est disponible en préversion publique.

Cette page décrit le contrôle d’accès basé sur les attributs (ABAC) dans le catalogue Unity.

Qu’est-ce qu’ABAC ?

ABAC est un modèle de gouvernance des données qui fournit un contrôle d’accès flexible, évolutif et centralisé dans Azure Databricks. ABAC complète le modèle de privilège existant du catalogue Unity en permettant aux stratégies d’être définies en fonction des balises régies, qui sont appliquées aux ressources de données. Cela simplifie la gouvernance et renforce la sécurité.

Les utilisateurs disposant MANAGE d’autorisations ou de propriété d’objet n’ont besoin que de définir des stratégies une seule fois et peuvent les appliquer de manière cohérente sur de nombreuses ressources de données. Les stratégies sont attachées au niveau du catalogue, du schéma ou de la table et s’appliquent automatiquement à toutes les tables de cette étendue. Lorsqu’elles sont définies à des niveaux supérieurs, les stratégies se répercutent sur les objets enfants. Les balises régies sur les ressources de données déterminent quelles stratégies sont appliquées, ce qui permet au contrôle d’accès de s’adapter dynamiquement.

Avantages d’ABAC

  • Scalabilité : Gérez les contrôles d’accès à grande échelle en tirant parti des balises plutôt que des autorisations individuelles.
  • Flexibilité: Ajustez facilement la gouvernance en mettant à jour des balises ou des stratégies sans modifier chaque ressource de données.
  • Gouvernance centralisée : Simplifiez la gestion des stratégies par le biais d’un modèle unifié qui couvre les catalogues, les schémas et les tables.
  • Sécurité améliorée : Appliquez dynamiquement des contrôles d’accès affinés en fonction des attributs de données.
  • Auditabilité : Conservez une visibilité en temps réel de l’accès aux données via des journaux d’audit complets.

Fonctionnement d’ABAC

ABAC dans Le catalogue Unity utilise des balises, des stratégies et des fonctions définies par l’utilisateur (UDF) régies pour appliquer un contrôle d’accès dynamique basé sur des attributs. Les composants et mécanismes suivants sont essentiels à ABAC :

  • Balises régies : Les balises régies sont définies au niveau du compte à l’aide de stratégies de balise. Ces balises représentent des attributs tels que la sensibilité des données, la classification ou le domaine métier, et sont affectés à des tables, des schémas ou des catalogues dans le catalogue Unity. Ils servent d’attributs qui pilotent l’application de la stratégie. Consultez les balises régies et Appliquer des étiquettes aux objets sécurisables du catalogue Unity.

  • Politiques: Les politiques sont créées et gérées à trois niveaux hiérarchiques dans Unity Catalog.

    • Niveau catalogue : Appliquez des stratégies générales affectant tous les schémas et tables contenus.
    • Niveau de schéma : Appliquez des stratégies spécifiques à un schéma et à ses tables.
    • Au niveau des tables : appliquez des stratégies granulaires directement au niveau de tables individuelles.

    Les stratégies suivent un modèle d’héritage : lorsqu’une stratégie est définie au niveau du catalogue ou du schéma, elle s’applique automatiquement à tous les objets, schémas et tables enfants dans cette étendue. Cela permet aux administrateurs d’implémenter une gouvernance efficace en appliquant une stratégie unique qui régit de grands ensembles de ressources de données. Les stratégies héritées réduisent la redondance et favorisent l’application cohérente dans la hiérarchie de données. Databricks recommande de définir des stratégies au niveau le plus élevé applicable, généralement le catalogue, afin d’optimiser l’efficacité de la gouvernance et de réduire la surcharge administrative. Consultez Créer et gérer des stratégies de contrôle d’accès en fonction des attributs (ABAC).

  • Fonctions définies par l’utilisateur (UDF) : Les fonctions définies par l’utilisateur sont des fonctions personnalisées définies au niveau du schéma et peuvent être référencées globalement dans l’espace de noms du catalogue Unity. Les fonctions définies par l’utilisateur sont utilisées dans les stratégies pour exprimer une logique avancée, comme le filtrage de lignes ou le masquage des valeurs de colonne en fonction d’attributs. Par exemple, une fonction UDF nommée filter_region peut être utilisée dans une stratégie de filtre de lignes pour retourner uniquement les lignes où region = 'EMEA'. Consultez les Fonctions définies par l’utilisateur (UDF) dans Unity Catalog.

  • Application dynamique : Lorsqu’un utilisateur tente d’accéder à une ressource de données étiquetée, Unity Catalog évalue les stratégies applicables en fonction des balises et applique les contrôles d’accès définis.

    Les utilisateurs qui sont explicitement exclus d’une stratégie peuvent continuer à effectuer des actions telles que le clonage profond et peu profond et les déplacements temporels sur les données sous-jacentes. Toutefois, les utilisateurs qui ne sont pas exclus des stratégies ABAC sont soumis aux mêmes limitations que celles qui s’appliquent au contrôle d’accès affiné.

  • Journalisation d’audit : Toutes les opérations sur les ressources de données étiquetées sont capturées et enregistrées dans la table système du journal d’audit, ce qui permet une visibilité et un suivi de conformité complets. Consultez les journaux d’audit.

Pour savoir comment configurer ABAC, consultez Tutoriel : Configurer ABAC.

Pour une démonstration de la configuration d’ABAC, consultez Découvrez le contrôle d'accès basé sur les attributs (ABAC) avec Unity Catalog.

Types de stratégie

Deux types de politiques ABAC sont pris en charge :

  • Les stratégies de filtre de lignes limitent l’accès à des lignes individuelles d’une table en fonction de leur contenu. Une fonction UDF de filtre évalue si chaque ligne doit être visible par un utilisateur. Ces stratégies sont utiles lorsque l’accès dépend des caractéristiques des données.

    Exemple de cas d’usage : Affichez uniquement les lignes d’une table de transactions client où la colonne de région correspond à une balise régie telle que region=EMEA. Cela permet aux équipes régionales de voir uniquement les données pertinentes pour leur région.

  • Les stratégies de masque de colonne contrôlent les valeurs que les utilisateurs voient dans des colonnes spécifiques. Une UDF de masquage peut retourner la valeur réelle ou une version expurgée, en fonction des balises régies.

    Exemple de cas d’usage : Masquez une colonne contenant des numéros de téléphone, sauf si la table est étiquetée sensitivity=low ou que l’utilisateur demandeur se trouve dans un groupe de conformité. Les utilisateurs sans accès voient une valeur null ou un espace réservé tel que XXX-XXX-XXXX.

Consultez Créer et gérer des stratégies de contrôle d’accès en fonction des attributs (ABAC).

Limites

  • Vous devez utiliser le calcul sur Databricks Runtime version 16.4 ou supérieure, ou bien le calcul sans serveur, pour accéder à une table sécurisée par un contrôle d'accès basé sur les attributs (ABAC). Les utilisateurs qui ne sont pas soumis à la stratégie peuvent utiliser n’importe quel runtime.
  • Vous ne pouvez pas appliquer directement des stratégies ABAC aux vues. Toutefois, lorsque vous interrogez une vue basée sur des tables avec des stratégies ABAC, l’identité et les autorisations du propriétaire de la vue sont utilisées pour évaluer les stratégies. Cela signifie :
    • Le propriétaire de la vue doit disposer des autorisations appropriées sur les tables protégées par ABAC sous-jacentes.
    • L’accès aux données est évalué en fonction des autorisations du propriétaire de la vue. Lorsque les utilisateurs interrogent la vue, ils voient les données filtrées ou masquées telles qu'elles apparaissent au propriétaire de la vue.
    • Le comportement peut varier en fonction de votre configuration de calcul. Pour plus d’informations, consultez Configuration requise pour l’interrogation des vues.
  • Les politiques sur les vues matérialisées et les tables en streaming ne sont prises en charge que si le propriétaire du pipeline est exempté de la politique.
  • Les utilisateurs peuvent partager des tables delta sécurisées par des stratégies ABAC si elles disposent des autorisations de partage Delta requises et sont exemptées des stratégies ABAC. La stratégie ne régit pas l’accès du destinataire. Pour les fournisseurs de partage, consultez Ajouter des tables et des schémas sécurisés par des stratégies ABAC à un partage. Pour les destinataires de partage, consultez Lire les données sécurisées par ABAC et appliquer des stratégies ABAC.
  • Un seul filtre de lignes distinct peut être résolu au moment de l’exécution pour une table donnée et un utilisateur donné. Vous pouvez définir plusieurs stratégies de filtre de lignes, mais quand un utilisateur interroge la table, seules les conditions d’une stratégie doivent correspondre. Si plusieurs filtres de lignes distincts s’appliquent au même utilisateur et à la même table, Azure Databricks bloque l’accès et génère une erreur. Plusieurs stratégies sont autorisées si elles entraînent le même filtre (par exemple, la même fonction UDF avec les mêmes arguments). Consultez Résolution des problèmes de plusieurs filtres ou masques.
  • Un seul masque de colonne distinct peut être résolu au moment de l’exécution pour une colonne donnée et un utilisateur donné. Vous pouvez définir plusieurs stratégies de masque de colonne, mais quand un utilisateur interroge la table, seules les conditions d’une stratégie doivent correspondre pour chaque colonne. Si plusieurs masques de colonne distincts s’appliquent à la même colonne pour le même utilisateur, Azure Databricks bloque l’accès et génère une erreur. Plusieurs stratégies sont autorisées si elles entraînent le même masque (par exemple, la même fonction UDF avec les mêmes arguments). Consultez Résolution des problèmes de plusieurs filtres ou masques.
  • Une stratégie ABAC peut inclure jusqu’à trois conditions de colonne dans sa MATCH COLUMNS clause.
  • Il n’existe aucune table de schéma d’informations pour les stratégies ABAC. Les tables information_schema.row_filters et information_schema.column_masks affichent uniquement les filtres de lignes et les masques de colonne appliqués directement aux tables. Ils n’affichent pas les définitions de stratégie ABAC ni les filtres et les masques dérivés des stratégies ABAC au moment de l’exécution.
  • Pour connaître les limitations d’ABAC sur le calcul dédié, consultez Limitations.

Pour connaître les limitations des filtres de lignes et des masques de colonne, consultez Limitations.