Powrót do blogaGDPR i zgodność

Spójność anonimizacji na dokumentach: zestawy reguł GDPR do inspekcji regulacyjnej

Każdy dokument w partii musi być anonimizowany w ten sam sposób - jeśli Dokument 1 zastępuje SSN znakiem X, to Dokument 2 też. Audyt RODO szuka dowodu spójnych procedur.

March 15, 20266 min czytania
GDPR auditprivacy configurationanonymization consistencyteam compliancepresets

Spójność anonimizacji na dokumentach: zestawy reguł GDPR do inspekcji regulacyjnej

Problem

Twoja organizacja anonimizuje 1000 dokumentów. Ale:

  • Dokument 1: SSN zastąpiony znakiem [SSN]
  • Dokument 2: SSN zastąpiony znakiem ###-##-####
  • Dokument 3: SSN usunięty całkowicie

Audytor RODO widzi brak spójności i twierdzi, że nie masz "odpowiednich procedur technicznych" (Art. 32).

Wymagania RODO Art. 32

RODO wymaga "odpowiednich technicznych i organizacyjnych środków":

  1. Pseudonymizacja: Konsekwentne zastępowanie danych
  2. Szyfrowanie: Chronienie danych w transporcie
  3. Integrity checks: Weryfikacja że dane nie zostały zmienione

Brak spójności anonimizacji narusza wszystkie trzy.

Zestawy reguł (Rule Presets)

Rozwiązanie: Definiowanie presetów anonimizacji, które każdy dokument przechodzi identycznie.

Preset 1 - Dane osobowe:

  • Imiona i nazwiska → [PERSON_NAME]
  • SSN → [SSN]
  • Email → [EMAIL]
  • Numer telefonu → [PHONE]

Preset 2 - Dane finansowe:

  • Numer konta → [ACCOUNT]
  • Numer karty kredytowej → [CARD]
  • Kwota pieniędzy → [AMOUNT]

Preset 3 - Dane medyczne:

  • Diagnoza → [DIAGNOSIS]
  • Medicyna → [MEDICATION]
  • Lekarz → [PHYSICIAN]

Implementacja

from presidio_anonymizer import AnonymizerEngine
from presidio_analyzer import AnalyzerEngine

class ConsistentAnonymizer:
    def __init__(self, preset_name):
        self.preset = self.load_preset(preset_name)
        self.mapping = {}  # Track replacements
    
    def anonymize(self, text):
        # Ensure same replacement for same original value
        for original, placeholder in self.mapping.items():
            text = text.replace(original, placeholder)
        return text
    
    def load_preset(self, name):
        # Load preset rules from database
        presets = {
            'personal': ['NAME', 'SSN', 'EMAIL'],
            'financial': ['ACCOUNT', 'CARD'],
            'medical': ['DIAGNOSIS', 'MEDICATION']
        }
        return presets.get(name, [])

Audyt dokumentacji

Dla inspekcji RODO, musisz dostarczyć:

1. Policy documentation:

  • "Kiedy anonimizujemy dane" (procedura)
  • "Jakie dane anonimizujemy" (definicje)
  • "Jak anonimizujemy" (presets)

2. Technical implementation:

  • Kod / konfiguracja anonimizera
  • Test coverage dla każdego presets
  • Logs każdej anonimizacji

3. Audit logs:

  • Kiedy anonimizowano dokument
  • Jaki preset został użyty
  • Czy operacja się udała

Częste błędy

Błąd 1: SSN "123-45-6789" zastąpiony "[SSN]", ale "123-45-6788" zastąpiony "XXX-XX-XXXX"

  • Rozwiązanie: Wszystkie SSN muszą być zastąpione identycznie

Błąd 2: Email "john@company.com" zachowany, ale "jane@company.com" usunięty

  • Rozwiązanie: Wszystkie emale muszą być traktowane jednakowo

Błąd 3: Pierwszy dokument zachowuje daty jako "01/01/2020", drugi jako "1/1/20"

  • Rozwiązanie: Normalizuj format dat PRZED anonimizacją

Narzędzia

  • Presidio (Microsoft): Pozwala na definicję custom presets
  • AWS Macie: Automatyczne identyfikowanie danych + spójne maskowanie
  • Google DLP API: Presets dla HIPAA, PCI-DSS, GDPR

Zaključak

RODO Art. 32 wymaga nie tylko anonimizacji, ale spójnej anonimizacji. Zestawy reguł (presets) są dowodem na "odpowiednie procedury techniczne". Brak spójności = brak conformance.

Gotowy, aby chronić swoje dane?

Rozpocznij anonimizację PII z 285+ typami podmiotów w 48 językach.