Pipeline bezpečný pro GDPR: Anonymizujte PII před uložením
Aktualizováno pro rok 2026
Označili jste sloupce PII v dbt. Nastavili jste dynamické maskování ve Snowflake. Máte pocit souladu s GDPR.
Vaše zdrojový obsah stále přistává ve skladu bez maskování. Maskování probíhá při dotazu. Nemaskovaný obsah sedí ve vašem surovém schématu. Kdokoli s přístupem k surovému schématu ho může přečíst. Vaše dbt modely běžely ještě před existencí maskovacích politik. Staré importované tabulky nebyly nikdy maskovány.
Mezera mezi „máme maskovací politiky” a „náš pipeline je bezpečný” je tam, kde dochází k porušením GDPR.
Viz náš přehled compliance, jak anonym.legal podporuje GDPR.
Jak ELT pipeline vystavuje PII
Vzor Extract-Load-Transform (ELT) je nyní normou. Nejprve načte zdrojová data do skladu. Transformace přijdou později. Kroky vypadají takto:
- Extrakce: Zdrojové systémy exportují všechna pole. Salesforce CRM, Stripe platby, Intercom podpora — vše odchází.
- Načtení: Zdrojová data přistávají ve schématu pro příjem dat skladu. Snowflake, BigQuery, Redshift fungují stejně. Každé PII pole je zahrnuto.
- Transformace: dbt modely čistí a spojují data pro analytiku.
Vrstva příjmu dat obsahuje plné osobní informace. Jména, e-mailové adresy, telefonní čísla, platební údaje, text podpůrných lístků. V mnoha týmech mají inženýři a analytici přístup k surovému schématu. Mohou tyto tabulky kdykoli dotazovat.
Maskování na základě značek ve Snowflake pomáhá při dotazu. Ale pouze pro řádně nastavené modely následného zpracování. Nemaskovává staré importované tabulky. Neblokuje přímé dotazy na schéma. Každý model a dashboard musí být označen. Tato zátěž roste s růstem schématu.
Anonymizujte před načtením
Anonymizace PII na úrovni pipeline odstraňuje riziko v surové vrstvě. Proveďte ji ještě před tím, než obsah přistane ve skladu.
ETL přístup (anonymizace před načtením):
- Extrakce ze zdrojových systémů
- Průchod krokem anonymizace
- Načtení čistého výstupu do skladu
Sklad nikdy neobdrží nemaskované PII. Schéma příjmu dat obsahuje pouze čistý obsah. Modely následného zpracování, dashboardy a přímé dotazy pracují s čistým výstupem.
Máte dvě hlavní možnosti.
Možnost 1 — Integrace API:
Pro systémy s webhooky nebo streamovacími exporty směrujte záznamy nejprve přes API anonym.legal. Podpůrné lístky opouštějící Intercom procházejí přes API před sklady. Exporty Stripe fungují stejně.
POST /api/anonymize
{
"text": "Zákazník Jan Novák (jnovak@example.com) nahlásil...",
"entities": ["PERSON", "EMAIL_ADDRESS", "PHONE_NUMBER"],
"method": "replace"
}
Možnost 2 — Dávkové předzpracování:
Pro denní nebo týdenní exporty souborů CSV/JSON spusťte soubory přes dávkové zpracování před načtením.
Struktura Airflow DAG:
extract_task >> anonymize_batch_task >> load_to_warehouse_task
Úloha anonymizace nahraje soubory a vrátí čisté verze. Úloha načtení se postará o zbytek.
Viz naše bezpečnostní postupy pro podrobnosti o dílčích zpracovatelích a datových tocích.
Co značky sloupců dbt dělají a nedělají
dbt umožňuje označovat sloupce PII:
models:
- name: stg_customers
columns:
- name: email
tags: ['pii', 'email']
- name: full_name
tags: ['pii', 'personal_data']
Značky umožňují:
- Dokumentovat, kde se PII nachází
- Spouštět maskovací politiky v následném zpracování (vyžaduje nastavení na úrovni skladu)
- Sledovat původ dat s nástroji jako Secoda
Značky nedělají:
- Nemaskují importované tabulky v surovém schématu
- Neblokují přímé dotazy na tabulky
- Neanonymizují data při načtení
- Retroaktivně nemaskují stará data
Značky sloupců dbt jsou nástrojem správy. Ukazují, kde se PII nachází. Neuplatňují „vhodná technická opatření”, která vyžaduje článek 32 GDPR.
Mezera maskování Snowflake
Dynamické maskování Snowflake skryje obsah sloupce před uživateli při dotazu. Jedná se o silnou kontrolu pro produkční použití. Má však jasná omezení.
Hlavní omezení:
- Každý nový sloupec potřebuje explicitní politiku
- Změny schématu mohou ponechat nové sloupce bez maskování, dokud politiky neaktualizujete
- Role SYSADMIN a ACCOUNTADMIN mohou maskování obejít
- Importní úlohy často běží s vysokými oprávněními, která maskování přeskočí
- Stará data načtená před nastavením politik jsou uložena v otevřené formě — politiky běží při čtení, nikoli při zápisu
Maskování při dotazu nestačí. Data musí být čistá ještě před uložením.
Dokumentace compliance
Pravidlo odpovědnosti GDPR vyžaduje důkaz. Slova nestačí. Pro inženýrské týmy to znamená písemné záznamy.
Záznamy o činnostech zpracování (ROPA): Dokumentujte, že informace o zákaznících jsou anonymizovány před načtením do analytického skladu. Krok anonymizace je činností zpracování podle GDPR.
Poznámky k technickým zárukám: Zapište, na které typy entit se váš pipeline zaměřuje. Poznamenejte použitou metodu anonymizace. Protokoly dávkových spuštění vám to poskytnou automaticky.
Původ dat: Secoda nebo vestavěný lineage dbt může ukázat, že zdrojové tabulky procházejí krokem anonymizace před dosažením analytických modelů. To je váš auditní záznam.
Registr dodavatelů: Služba anonymizace je dílčím zpracovatelem. Jejich DPA a zásady ochrany osobních údajů musí být ve vašem registru dodavatelů.
Kroky implementace
Pro pipeline s dbt a Snowflake:
Krok 1: Auditujte svou surovou vrstvu
Najděte, které tabulky obsahují osobní informace. Dotazujte se na vaše dbt značky sloupců nebo katalog pro tabulky označené PII.
Krok 2: Nastavte rozsah anonymizace
Pro každou zdrojovou tabulku rozhodněte, které sloupce obsahují PII. Pak rozhodněte, které potřebují anonymizaci a které pseudonymizaci. Tělo podpůrného lístku: anonymizujte. ID objednávky: pseudonymizujte pro zachování klíčů pro spojení. Časové razítko: ponechte beze změny pro analýzu časových řad.
Krok 3: Zvolte cestu implementace
Malý tým s dávkovými exporty: použijte dávkové zpracování souborů před načtením. Dostupný inženýrský tým: vybudujte integraci API v Airflow nebo Prefect.
Krok 4: Testujte a ověřujte
Spusťte anonymizaci na vzorku před spuštěním v produkci. Zkontrolujte, zda dbt modely stále fungují. Některé modely se spojují přes e-mail. Ty potřebují konzistentní náhradní hodnoty. Pseudonymizace zachovává klíče pro spojení. Redakce je přeruší.
Krok 5: Zpracujte staré surové tabulky
Obsah načtený před zavedením anonymizace potřebuje retroaktivní zpracování. Exportujte, anonymizujte, znovu načtěte. Jedná se o jednorázový úkol pro každou tabulku.
Závěr
Maskování na základě značek vám ukazuje, kde se PII nachází. Nebrání uživatelům se přístupem ke schématu v jeho čtení. Pro skutečný soulad s GDPR musí být PII čisté ještě před dosažením skladu. To činí vrstvu příjmu dat stejně bezpečnou jako produkční vrstvu.
To je obtížnější než označování sloupců. Ale to je to, co „vhodná technická opatření” skutečně znamenají.