Aller au contenu principal

Column masking

Masque les colonnes sensibles a la lecture, sans modifier les donnees stockees. Couvre la consultation via SQL Console, Data Explorer et exports.

Quand l'utiliser

  • Un dev support doit voir les commandes mais pas les emails clients.
  • Un PM consulte la prod pour debug — il voit les noms masques, pas les SSN.
  • Vous voulez un controle granulaire sans dupliquer les vues SQL.

Differe de Anonymisation : ici on masque a la lecture, les donnees source ne bougent pas.

Workflow rapide

  1. Column masks -> Nouvelle regle.
  2. Choisir la table, la colonne, le pattern de masque (full redact, last 4, email domain only, etc.).
  3. Choisir les roles concernes (ex : dev, qa) ou les exemptions (admin voit tout).
  4. Activer. La regle s'applique en streaming sur les requetes via SQL Console et Data Explorer.

Concepts cles

  • ColumnMaskRule : table + colonne + pattern + scope roles.
  • Scope : roles concernes. Un user admin avec exemption voit la valeur brute.
  • Patterns disponibles : full, last4, email_domain, partial_phone, hash_visible.

Pieges courants

  • Le masque s'applique a la lecture, pas aux backups : un pg_dump direct contourne la regle. Combine avec Anonymisation export pour les dumps externes.
  • Aggregations : un COUNT(email) retourne le bon count, mais un MAX(email) retourne la valeur brute du max — le masque ne s'applique qu'aux colonnes retournees nominalement.
  • Cache cote client : si l'utilisateur a deja vu les valeurs avant l'ajout de la regle, son cache navigateur peut conserver les anciennes valeurs jusqu'a refresh.

API

curl -X POST https://app.auralith.io/api/v1/projects/{pid}/column-masks \
-H "Authorization: Bearer $API_KEY" \
-d '{"table":"users","column":"email","pattern":"email_domain","scope_roles":["dev","qa"]}'

Voir aussi