Aller au contenu
Démarrage rapide

Stratégies de pseudonymisation

Une stratégie définit comment une valeur réelle est transformée avant d’être écrite vers la cible. Elle se déclare au niveau colonne dans brume.yml.

StratégieRéversible ?Joignable ?Préserve le format ?Requiert type
FAKENonOui (déterministe)NonOui
MASKNonNonOuiOui
HASHNonOuiNon (64 car. fixes)Non
NULLIFYN/ANonN/ANon
FPE_IDOui (avec la clé)OuiOuiNon
FPE_UUIDOui (avec la clé)OuiOui (UUID → UUID)Non
KEEPN/AN/AN/ANon

Remplace la valeur par une valeur synthétique réaliste générée via Datafaker, semée par le HMAC de l’original. Déterministe : la même valeur source produit toujours le même faux.

- name: email
strategy: FAKE
type: EMAIL

À utiliser pour les PII de niveau affichage qui doivent avoir l’air réelles sur des captures d’écran, dans des démos ou des tests d’intégration où le code aval parse la valeur (par ex. validation d’email).

Masquage partiel qui préserve la structure du champ. Conserve un préfixe ou un suffixe selon le type, remplace le reste par *.

- name: phone
strategy: MASK
type: PHONE

À utiliser pour les valeurs lisibles dans le support / les logs où vous voulez que les opérateurs reconnaissent la forme des données (4 derniers chiffres d’une carte, premières lettres d’un nom) sans voir la valeur complète.

HMAC-SHA256 à sens unique, indexé sur BRUME_HMAC_SECRET. Produit une chaîne hex de 64 caractères. Déterministe, non réversible.

- name: external_user_id
strategy: HASH

À utiliser pour les identifiants opaques sur lesquels vous devez joindre entre tables mais que vous n’avez jamais besoin d’afficher ou d’inverser. La sortie fait toujours 64 caractères — si la colonne a une contrainte VARCHAR(N) plus petite, préférez FPE_ID ou FPE_UUID.

Remplace la valeur par NULL. La colonne doit être nullable dans le schéma cible.

- name: free_text_notes
strategy: NULLIFY

À utiliser pour les champs texte libre ou commentaires où les utilisateurs peuvent coller des PII qu’aucune stratégie ne peut nettoyer en toute sécurité. La minimisation la plus forte possible.

Chiffrement préservant le format (FF1 / BouncyCastle) pour les identifiants numériques. Entrée entière → sortie entière de la même longueur. Indexé par BRUME_FPE_KEY.

- name: id
strategy: FPE_ID

À utiliser pour les clés primaires numériques. Brume propage automatiquement le chiffrement à chaque clé étrangère pointant vers cette PK, l’intégrité référentielle tient donc de bout en bout.

Pseudonymisation déterministe UUID-vers-UUID. Préserve le format 8-4-4-4-12, l’unicité et les relations FK.

- name: id
strategy: FPE_UUID

À utiliser pour les clés primaires UUID. Même propagation automatique des FK que FPE_ID.

Copie la valeur sans modification. C’est le comportement par défaut pour toute colonne non déclarée dans brume.yml.

- name: country_code
strategy: KEEP

À utiliser pour les colonnes non sensibles (lookups, enums, timestamps) — même si en général vous les laissez simplement non déclarées.

Tableau de décision — quelle stratégie quand ?

Section intitulée « Tableau de décision — quelle stratégie quand ? »
Votre colonne est…Choisissez
Une PK / FK numériqueFPE_ID
Une PK / FK UUIDFPE_UUID
Un email / nom / téléphone / adresse à afficherFAKE (+ type correspondant)
Un téléphone / carte / ID dont la forme compte mais pas le contenuMASK (+ type correspondant)
Une clé opaque sur laquelle vous joignez mais que vous n’affichez jamaisHASH
Un champ texte libre / notesNULLIFY
Un enum / timestamp / booléen sûrlaisser non déclaré (= KEEP)