Partager via


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

Importante

Cette fonctionnalité est en version bêta.

Cette page explique comment configurer des stratégies de filtre de lignes et de masque de colonne dans le catalogue Unity. Pour plus d’informations sur le contrôle d’accès basé sur les attributs (ABAC) et les stratégies, consultez Le contrôle d’accès basé sur les attributs du catalogue Unity (ABAC). Pour appliquer des balises à des objets, consultez stratégies d’étiquettes et Appliquer des balises aux objets sécurisables du catalogue Unity.

Activer ABAC

La version bêta ABAC est activée au niveau de l’espace de travail. Databricks ne peut pas appliquer ABAC sur les opérations de lecture aux catalogues partagés, sauf si ABAC est également activé dans chaque espace de travail qui accède à ces catalogues.

Pour créer et gérer des stratégies ABAC, les fonctionnalités bêta des stratégies ABAC ainsi que celles des politiques de balisage doivent être activées.

Pour activer la version bêta DBAC, procédez comme suit :

  1. En tant qu’administrateur d’espace de travail, cliquez sur votre nom d’utilisateur dans la barre supérieure de l’espace de travail Azure Databricks.
  2. Dans le menu, sélectionnez Aperçus.
  3. Définissez le bouton bascule du contrôle d’accès basé sur l’attributsur Activé.

Pour activer la version bêta des stratégies de balise, consultez Activer les stratégies d’étiquette.

Créer une stratégie sur un objet

Autorisations requises :MANAGE sur l’objet ou le propriétaire de l’objet.

Explorateur de catalogues

  1. Dans votre espace de travail Azure Databricks, cliquez sur l’icône Données.Catalogue.

  2. Sélectionnez l’objet qui détermine l’étendue de la stratégie, telle qu’un catalogue, un schéma ou une table.

  3. Cliquez sur l’onglet Stratégies.

  4. Cliquez sur Nouvelle stratégie.

  5. En général, entrez un nom et une description pour votre stratégie.

  6. Dans Principals :

    • Dans Appliqué à..., recherchez et sélectionnez les acteurs que la stratégie régira.
    • À l’exception de..., recherchez et sélectionnez les principaux à exclure de la stratégie. Par exemple, vous pouvez exclure un utilisateur qui appartient à un groupe auquel la stratégie s’applique.

    ABAC renseigné dans la politique.

  7. Dans Type & cible :

    • Dans le type de stratégie, sélectionnez Filtre de ligne ou Masque de colonne.
    • Dans la cible de stratégie, sélectionnez l’étendue de la stratégie. Il peut s’agir d’une étendue, telle qu’un catalogue ou un schéma entier, ou une étendue plus étroite, telle que des tables ou des colonnes spécifiques.
    • Dans la condition de niveau table, spécifiez la condition correspondant aux tables auxquelles cette stratégie s’applique. Par exemple, hasTag("tag") ou hasTagValue("tag", "value").
  8. Dans fonction, sélectionnez une fonction à utiliser par cette stratégie et entrez les paramètres requis.

    ABAC utilisé dans la politique de filtrage des lignes.

  9. Cliquez sur Créer une stratégie.

SQL

Voici la syntaxe générale permettant de créer une stratégie :

CREATE POLICY <policy_name>
ON <securable_type> <securable_name>
COMMENT '<policy_description>'
-- One of the following:
  ROW FILTER <udf_name>
  | COLUMN MASK <udf_name> ON COLUMN <target_column>
TO <principal_name>[, <principal_name>, ...]
[EXCEPT <principal_name>[, <principal_name>, ...]]
FOR TABLES
[WHEN has_tag('<key>') OR has_tag_value('<key>', '<value>')]
MATCH COLUMNS has_tag('<key>') OR has_tag_value('<key>', '<value>') AS <alias>
USING COLUMNS <alias>[, <alias>, ...];

Cet exemple définit une stratégie de filtre de lignes qui exclut les lignes pour les clients européens des requêtes des analystes américains :

CREATE POLICY hide_eu_customers
ON SCHEMA prod.customers
COMMENT 'Hide rows with European customers from sensitive tables'
ROW FILTER non_eu_region
TO us_analysts
FOR TABLES
MATCH COLUMNS
  hasTag('geo_region') AS region
USING COLUMNS (region);

Cet exemple définit une stratégie de masque de colonne qui masque les numéros de sécurité sociale des analystes américains, à l’exception de ceux avec le groupe admins :

CREATE POLICY mask_SSN
ON SCHEMA prod.customers
COMMENT 'Mask social security numbers'
COLUMN MASK mask_SSN
TO us_analysts
EXCEPT admins
FOR TABLES
MATCH COLUMNS
  hasTagValue('pii', 'ssn') AS ssn
ON COLUMN ssn;

Importante

Les données d’étiquette peuvent être répliquées globalement. N’utilisez pas de noms ni de valeurs d’étiquettes susceptibles de compromettre la sécurité de vos ressources. Par exemple, n’utilisez pas de noms d’étiquettes contenant des informations personnelles ou sensibles.

Modifier une stratégie

Autorisations requises :MANAGE sur l’objet ou le propriétaire de l’objet.

Explorateur de catalogues

  1. Dans votre espace de travail Azure Databricks, cliquez sur l’icône Données.Catalogue.
  2. Sélectionnez l’objet qui détermine l’étendue de la stratégie, telle qu’un catalogue, un schéma ou une table.
  3. Cliquez sur l’onglet Stratégies.
  4. Sélectionnez la stratégie et apportez des modifications.
  5. Cliquez sur Mettre à jour la stratégie.

SQL

REPLACE POLICY <policy_name>
ON <securable_type> <securable_name>
COMMENT '<policy_description>'
-- One of the following:
  ROW FILTER <udf_name>
  | COLUMN MASK <udf_name> ON COLUMN <target_column>
TO <principal_name>[, <principal_name>, ...]
[EXCEPT <principal_name>[, <principal_name>, ...]]
FOR TABLES
[WHEN has_tag('<key>') OR has_tag_value('<key>', '<value>')]
MATCH COLUMNS has_tag('<key>') OR has_tag_value('<key>', '<value>') AS <alias>
USING COLUMNS <alias>[, <alias>, ...];

Supprimer une stratégie

Autorisations requises :MANAGE sur l’objet ou le propriétaire de l’objet.

Explorateur de catalogues

  1. Dans votre espace de travail Azure Databricks, cliquez sur l’icône Données.Catalogue.
  2. Sélectionnez l’objet qui détermine l’étendue de la stratégie, telle qu’un catalogue, un schéma ou une table.
  3. Cliquez sur l’onglet Stratégies.
  4. Sélectionnez la stratégie.
  5. Cliquez sur Supprimer la stratégie.

SQL

DROP POLICY <policy_name> ON <securable_type> <securable_name>