Terug naar Utils

dbt macro

Masking

Bescherm persoonsgegevens in Snowflake automatisch op kolomniveau, zonder de brondata te wijzigen.

Doel

Tag-based masking is de Snowflake-native manier om persoonsgegevens te beschermen conform de AVG/GDPR. Kolommen die een PII-tag hebben gekregen worden automatisch gemaskeerd bij queries van rollen zonder toegang. De onderliggende data blijft ongewijzigd; alleen de weergave verschilt per rol.

Let op: Tag-based masking is alleen beschikbaar op Snowflake Enterprise edition of hoger.

Wat je kunt verwachten

De setup maakt zes tag-types aan in het datamodder schema, elk met een bijpassend maskeringsbeleid. Standaard ziet alleen SYSADMIN de werkelijke waarden; dit is configureerbaar.

TagVoorbeeldGemaskeerd
pii_nameJan de Vries*** *******
pii_emailjan@example.com*****@*****.***
pii_phone+31612345678+***********
pii_addressHoofdstraat 1***** *
pii_date1985-04-12****-**-**
piiVrije tekst*****

Gebruik

1. Eenmalige setup uitvoeren

Voer eerst setup.sql uit als accountadmin, daarna create_masking_setup:

{{ create_masking_setup() }}

De macro is idempotent (veilig om meerdere keren uit te voeren, gebruikt IF NOT EXISTS).

2. Tag toepassen op een kolom

Gebruik apply_masking_tag om een tag aan een kolom te hangen:

{{ apply_masking_tag(
    database = 'MIJN_DB',
    schema   = 'MIJN_SCHEMA',
    table    = 'KLANTEN',
    column   = 'EMAIL',
    tag      = 'pii_email'
) }}

3. Toegangsrol aanpassen (optioneel)

Stel in welke rol ongemaskeerde data mag zien via de projectvariabelen:

vars:
  masking_config:
    unmasked_role: SYSADMIN  # standaard