Powrót do blogaTechniczne

API Logs i JSON: Maskowanie PII dla obserwabilności GDPR

Systemy obserwabilności (Datadog, ELK, Splunk) przechowują pełne logi API zawierające SSN, tokeny, adresy IP.

April 21, 20266 min czytania
API logsGDPR complianceJSON anonymizationobservabilitystorage limitation

API Logs i JSON: Maskowanie PII dla obserwabilności GDPR

Systemy obserwabilności takie jak Datadog, ELK Stack i Splunk przechowują logi zawierające potencjalne PII:

  • Numery telefonów w parametrach
  • SSN w payloadach JSON
  • Tokeny dostępu w headers
  • IP adresy klientów

Problem

{
  "user_id": "john.smith",
  "ssn": "123-45-6789",
  "email": "john@company.com",
  "phone": "555-123-4567",
  "timestamp": "2025-03-01T10:00:00Z",
  "ip_address": "192.168.1.1"
}

Ten JSON trafia do Datadog, gdzie jest przechowywany przez 30 dni. Wszyscy inżynierowie mający dostęp do Datadog mogą zobaczyć SSN.

Rozwiązania

1. Redaction na poziomie aplikacji:

import json
import re

def redact_pii(obj):
    if isinstance(obj, dict):
        return {k: redact_field(k, v) for k, v in obj.items()}
    return obj

def redact_field(key, value):
    if 'ssn' in key.lower():
        return re.sub(r'\d', 'X', value)
    elif 'email' in key.lower():
        return value[:2] + '*' * (len(value) - 4) + value[-2:]
    return value

2. Redaction na poziomie obserwabilności (Datadog/Splunk):

  • Konfiguracja pipeline'ów redakcji
  • Regex rules dla SSN, email, phone
  • Policy dla IP masking

3. Szyfrowanie logów:

  • Szyfruj logi zanim pójdą do chmury
  • Deszyfruj lokalnie dla debugowania
  • Klucze przechowuj oddzielnie

RODO wymogi (Art. 32)

RODO Art. 32 wymaga:

  • "Pseudonymizacja danych" - zamień SSN na [SSN]
  • "Szyfrowanie" - szyfruj logi w transporcie
  • "Ability to restore" - możliwość odzyskania logów w razie awarii

Jeśli logi zawierają niezamaskowane PII, naruszasz Art. 32.

Zaključak

API logi wymagają redakcji PII przed wysłaniem do sytemu obserwabilności.

Gotowy, aby chronić swoje dane?

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