Aller au contenu principal

Bonnes pratiques pour les politiques ABAC.

Considérez les meilleures pratiques suivantes pour la conception de politiques ABAC et la gouvernance des tags.

Standardiser les attributs et la dénomination

Établissez une taxonomie de balisage cohérente avant de créer des stratégies. S'entendre sur les noms de clés de balise, les valeurs autorisées et les conventions de nommage entre les équipes. Un ensemble de balises petit et bien défini est plus facile à gérer qu'une prolifération de balises ad hoc.

Par exemple, utilisez un seul tag sensitivity avec des valeurs contrôlées (public, internal, confidential, restricted) plutôt que plusieurs tags qui se chevauchent comme is_sensitive, data_class et pii_level.

Définir qui peut définir des tags

Le balisage est une limite de sécurité dans l'ABAC. Si un utilisateur peut modifier les tags sur un asset de données, il peut changer les politiques qui s'y appliquent. Des tags incorrects ou manquants peuvent laisser les données non protégées ou inaccessibles, car les politiques ne s'appliquent que lorsque les bons tags sont en place.

  • Restreignez la création et la modification de balises aux data stewards ou administrateurs de gouvernance autorisés. Voir les tags régis pour savoir comment configurer les autorisations relatives aux tags.
  • Auditez régulièrement les modifications des balises à l'aide de la table système des logs d'audit.

Définir les règles de fallback pour les données non classifiées

Ne supposez pas que tous les objets sont correctement étiquetés. Utilisez l'automatisation pour appliquer les normes de tagging et implémenter des mécanismes de fallback pour les données non classifiées :

  • Appliquez une étiquette restrictive default (comme classification : unverified) aux nouveaux objets jusqu'à ce qu'un data steward les examine.
  • Créez une politique qui restreint l'accès aux objets avec l'étiquette default.

Pour un exemple détaillé, consultez Empêcher l'accès tant que les colonnes sensibles ne sont pas taguées.

Définissez les politiques au niveau de portée le plus élevé applicable.

Attachez les politiques au niveau du catalogue ou du schéma lorsque cela est possible. Les politiques au niveau des tables sont rares et devraient être l'exception.

Les stratégies à l’échelle du catalogue sont évaluées par rapport à toutes les tables du catalogue, et les stratégies à l’échelle du schéma sont évaluées par rapport à toutes les tables du schéma. Lorsque vous ajoutez de nouvelles tables, les politiques existantes s'appliquent tant que leurs balises correspondent aux conditions de la politique.

Évitez la prolifération des stratégies

ABAC est conçu pour réduire le nombre de règles de contrôle d'accès, non pour les augmenter. Si les équipes créent trop de tags et de politiques, le résultat est difficile à gérer et à auditer.

  • Analysez vos exigences de gouvernance avant de créer des politiques.
  • start with a small number of broad policies, such as PII masking across a catalog or regional row filtering.
  • Évitez de créer une politique distincte pour chaque cas limite.
  • Passez en revue les politiques périodiquement et consolidez celles qui se chevauchent.

Un grand nombre de politiques et des conditions complexes peuvent ralentir les vérifications d'autorisation. Consultez Considérations sur les performances pour plus de détails.

Auditer les autorisations directes et les politiques GRANT ABAC ensemble

astuce

Les privilèges effectifs d'un utilisateur sur un objet de données sont l'union des octrois directs et des politiques GRANT ABAC (bêta). Lors de l'examen de l'accès, vérifiez à la fois les octrois directs et les politiques GRANT ABAC. L'audit d'une seule surface peut masquer des autorisations non intentionnelles. Consultez les politiques GRANT ABAC pour les modèles (bêta).

Préférer À/SAUF pour le ciblage de principal

Pour les politiques de filtrage de lignes et de masquage de colonnes, utilisez les clauses TO et EXCEPT de la politique pour définir les utilisateurs et les groupes auxquels la politique s'applique. Cela simplifie la logique des UDF. La clause EXCEPT exclut entièrement des utilisateurs spécifiques de la politique afin qu'ils ne soient soumis à aucun filtrage ni masquage. Lorsque la logique conditionnelle complexe est requise, les fonctions d'identité telles que is_account_group_member() au sein des UDF restent une option valide.

Pour les politiques GRANT (Bêta), TO et EXCEPT sont les seuls mécanismes de ciblage des mandataires, car les politiques GRANT n’utilisent pas d’UDF.

Pour plus de détails, consultez l'approche de ciblage des entités principales.

Planifier l'évaluation dynamique des politiques

Les politiques ABAC sont dynamiques. Contrairement aux filtres de ligne au niveau de la table et aux masques de colonne, qui sont directement visibles dans la définition de la table, les politiques ABAC sont évaluées au moment de la query en fonction de l'identité de l'utilisateur et des appartenances au groupe, ainsi que des tags sur l'objet de données dans la portée de la politique. Cela peut rendre plus difficile pour les consommateurs de données et les propriétaires de tables de comprendre quelles règles d'accès s'appliquent à une table donnée.

  • Utilisez SHOW EFFECTIVE POLICIES pour déterminer ce qui s'applique à une table spécifique.
  • Documentez votre taxonomie de marquage, vos politiques et votre approche de gestion de groupe afin que les équipes puissent comprendre le modèle de gouvernance sans inspecter chaque politique individuellement.
  • Si la transparence est essentielle pour une table spécifique, envisagez plutôt d'utiliser des filtres de lignes au niveau de la table et des masques de colonne pour ce cas isolé. Assurez-vous de résoudre les conflits possibles en premier.

En savoir plus

Sujet

Description

Considérations sur les performances

Comment la conception des politiques ABAC affecte les performances des query et comment optimiser et tester vos politiques.

Quand utiliser ABAC ou des filtres de ligne et des masques de colonne au niveau de la table

Différences en termes de portée, de propriété et de choix entre les deux approches.

OpenSharing et ABAC

Comment partager des tables protégées par ABAC via OpenSharing, gérer les politiques côté destinataire et configurer des vues locales côté destinataire.

Utiliser RBAC avec ABAC

Comportement des politiques ABAC lorsque les utilisateurs assument un rôle sous RBAC, y compris le comportement de la fonction d'identité (current_user(), is_member, is_account_group_member) et les modèles d'utilisation combinée.

Sujet

Description

Considérations sur les performances

Comment la conception des politiques ABAC affecte les performances des query et comment optimiser et tester vos politiques.

Quand utiliser ABAC ou des filtres de ligne et des masques de colonne au niveau de la table

Différences en termes de portée, de propriété et de choix entre les deux approches.

OpenSharing et ABAC

Comment partager des tables protégées par ABAC via OpenSharing, gérer les politiques côté destinataire et configurer des vues locales côté destinataire.

Utiliser RBAC avec ABAC

Comportement des politiques ABAC lorsque les utilisateurs assument un rôle sous RBAC, y compris le comportement de la fonction d'identité (current_user(), is_member, is_account_group_member) et les modèles d'utilisation combinée.