PII verbergt zich in toepassingslogs
App-logs zijn een van de meest over het hoofd geziene GDPR-oppervlakken in engineering. Niet omdat engineers de wet negeren. Omdat gebruikersinformatie per ongeluk in logbestanden terechtkomt.
Eén JSON-verzoeklog kan vier PII-velden bevatten:
{
"timestamp": "2025-11-14T09:22:13Z",
"level": "ERROR",
"endpoint": "/api/users/profile",
"user_email": "sarah.johnson@company.com",
"ip_address": "195.88.44.12",
"account_id": "CUST-EU-447821",
"error": "User sarah.johnson@company.com not found"
}
De e-mail staat in twee velden. Het IP is persoonsgegevens onder GDPR (als het herleidbaar is tot een persoon). De account-ID is persoonsgegevens in context.
Het log-retentieprobleem
Logs worden bewaard voor debuggen. Typische bewaarperiode: 30–90 dagen. Sommige observeerbaarheidsplatforms bewaren jaren aan logs.
GDPR Artikel 5(1)(e) beperkt bewaarduur. Logs met e-mailadressen of IP-adressen die langer dan nodig worden bewaard, zijn een overtreding.
Als logs naar derde partijen gaan — externe aannemers, observeerbaarheidsplatforms zoals Datadog of Splunk — wordt het een gegevensoverdracht die een DPA vereist.
Log-anonimisering bij bronverwerking
De benadering: anonimiseer PII in logs vóór opslag.
from anonym_legal import AnonymClient
client = AnonymClient(api_key=os.environ["ANONYM_KEY"])
def log_event(level, endpoint, user_email, ip, account_id, error_msg):
# Anonimiseer velden die PII bevatten
anon_result = client.anonymize(
text=f"{user_email} {ip} {account_id} {error_msg}"
)
# Log geanonimiseerde versie
logger.log(level=level, endpoint=endpoint,
details=anon_result.anonymized_text)
Geanonimiseerde logs zijn volledig debugbaar: foutmeldingen, tijdstempels, endpoints en paden zijn intact. Alleen de identificerende informatie is vervangen.
Deze logs kunnen worden gedeeld met aannemers of externe platforms zonder GDPR-zorgen over retentie of overdracht.