Zpět na blogTechnické

Budování GDPR bezpečného datového potrubí...

Tagování sloupců v dbt není GDPR shoda. Nezpracovaná zákaznická data přicházejí do vašeho datového skladu Snowflake nemasked...

April 20, 20268 min čtení
data pipelinedbtSnowflakedata warehouseELT anonymizationGDPR engineering

Budování GDPR bezpečného datového potrubí: Anonymizace PII před dosažením datového skladu

Otagovali jste své sloupce PII v dbt. Vaše zásada dynamického maskování dat je nakonfigurována v Snowflake. Cítíte se v souladu s GDPR.

Vaše nezpracovaná data stále přicházejí do skladu nemasked. Zásada maskování se uplatňuje v čase dotazu — ale nezpracovaná, nemasked data existují ve vaší surové vrstvě, dostupná pro kohokoli s přístupem k surovému schématu. Vaše modely dbt běžely dříve, než byly zavedeny vaše zásady maskování, a historická surová data nebyla nikdy maskována.

Mezera mezi „máme zásady maskování" a „naše data jsou skutečně chráněna" je místem, kde dochází k porušením GDPR.

Jak ELT potrubí vytváří expozici PII

Vzor Extract-Load-Transform (ELT):

  1. Extrahujte data ze zdrojových systémů (CRM, podpora, formuláře)
  2. Načtěte nezpracovaná data přímo do skladu (Snowflake, BigQuery, Redshift)
  3. Transformujte pomocí dbt pro analytické vrstvy
  4. Aplikujte maskování v čase dotazu prostřednictvím zásad skladu

Problém: Krok 2 vypustí nezpracovanou PII do vašeho skladu před krokem 4. Zákazníci e-mailové adresy, telefonní čísla, jména — všechny v surové vrstvě, čekající na transformaci, do které nemusí nikdy dojít pro historické záznamy.

GDPR expozice v typickém skladu

Typické Snowflake prostředí s tabulkami CRM:

TabulkaPII poleGDPR vystavení
raw.customersemail, phone, name, addressPlné PII, přístupné jakémukoli analytiku
raw.support_ticketsmessage_body, customer_emailMůže obsahovat finanční/zdravotní PII
raw.form_submissionsfree_text_fieldNekontrolovaný vstup PII
staging.customerse-mail, telefon (stále surové)dbt staging, ne anonymizovaný

Zásada maskování platí pro analytics.customers — ne pro raw.customers. Auditor, který zkontroluje záznamy surového přístupu, uvidí přístup k nemasked PII pro každého, kdo spouštěl modely dbt.

Správný přístup: Anonymizace v potrubí, ne v čase dotazu

Anonymizace PII by měla probíhat v kroku transformace — nikoli jako zásada přístupu:

Krok 1: Detekce v API Odesílejte pole volného textu do API anonym.legal před načtením:

# V rámci ETL transformace
import requests

def anonymize_field(text, entities=None):
    response = requests.post(
        'https://anonym.legal/api/anonymize',
        json={
            'text': text,
            'language': 'en',
            'anonymize': True
        }
    )
    return response.json()['anonymized_text']

Krok 2: Nahraďte v potrubí Aplikujte anonymizaci před načtením do skladu:

# dbt pre-hook nebo vlastní skript ETL
raw_df['customer_email'] = raw_df['customer_email'].apply(
    lambda x: anonymize_email(x)  # → u***@domain.com
)

Krok 3: Ověřte pre-load Spusťte validaci PII detekce na transformovaných datech před načtením:

POST /api/analyze → ověřte 0 entit ve vašich cílových polích

Výsledky GDPR auditu

Organizace implementující anonymizaci na úrovni potrubí hlásí:

Auditní metrikaMaskování v čase dotazuAnonymizace potrubí
PII v surové vrstvěAno (přístupné administrátorům)Ne
Záznamy přístupu k PIISložité (různé role)Žádné (data nejsou tam)
Obhajitelnost audituStředníVysoká
Expozice historických datZávisí na politiceŽádná

Zdroje: GDPR článek 25 — ochrana dat designem · Pokyny EDPB k anonymizaci · Průvodce správou dat dbt

Připraveni chránit svá data?

Začněte anonymizovat PII s více než 285 typy entit ve 48 jazycích.