By · Last updated 2026-06-05

Takaisin BlogiinTekninen

GDPR-lokien anonymisointi: Säilytä debuggauskyky

Sovellukset kerryttävät hiljaisesti käyttäjien sähköposteja, IP-osoitteita ja tilinumeroita lokitiedostoihin. Näin jaat lokeja kolmansille osapuolille, urakoitsijoille ja havainnointipalveluille ilman GDPR-riskiä.

June 5, 20267 min lukuaika
JSON logsGDPR complianceDevOps privacylog anonymizationdata minimization

Henkilötieto piiloutuu sovelluksen lokeihin

Sovellusten lokit ovat yksi eniten laiminlyödyistä GDPR-pinta-aloista teknisissä tiimeissä. Ei siksi, että insinöörit sivuuttavat lain. Vaan siksi, että käyttäjien tiedot päätyvät lokitiedostoihin vahingossa.

Yksi JSON-pyyntöloki voi sisältää neljä henkilötietokenttää:

{
  "timestamp": "2025-11-14T09:22:13Z",
  "level": "ERROR",
  "endpoint": "/api/users/profile",
  "user_email": "sarah.johnson@company.com",
  "client_ip": "82.123.45.67",
  "user_agent": "Mozilla/5.0",
  "error": "ValidationError: phone format",
  "input_value": "+49 176 1234 5678"
}

Tämä yksittäinen merkintä sisältää sähköpostiosoitteen, IP-osoitteen ja puhelinnumeron. Kerrottuna miljoonilla päivittäisillä API-kutsuilla. Tuloksena on merkittävä henkilötietotoiminto. Se vaatii oikeudellisen perustan, rajoitukset ja kontrollit.

Ulkopuolisten lokitiedostojen jakaminen lisää GDPR-riskiä

Tiimit jakavat lokitiedostoja ulkopuolisille osapuolille jatkuvasti:

  • Tietoturvatestausyritykset saavat tietueita sovelluksen toiminnan kartoittamiseksi
  • Ulkopuoliset konsultit käyttävät lokiotoksia hitauksien löytämiseksi
  • Lokialustat (Elastic, Datadog, Splunk) vastaanottavat koko tulostusvirrat
  • SRE-urakoitsijat käyttävät tietueita häiriöiden aikana
  • Dev-tiimit muissa oikeushenkilöissä vastaanottavat tiedostoja debuggausta varten

Jokainen jakaminen herättää GDPR:n artiklan 28 kysymyksiä. Onko vastaanottaja käsittelijä? Onko olemassa tietojenkäsittelysopimus? Onko heillä oikeudellinen perusta nähdä käyttäjien tiedot näissä tiedostoissa?

Lokialustat ovat yleinen aukko. Tulosteen lähettäminen todellisilla käyttäjien sähköposteilla ja IP-osoitteilla Elastic Cloudiin tai Datadogiin luo käsittelylinkin. Tämä linkki vaatii tietojenkäsittelysopimuksen, standardilausekkeet ja siirtovälineen, jos alusta sijaitsee EU:n ulkopuolella. Kukin näistä vie aikaa ja oikeudellista tarkastelua.

Yksinkertaisempi polku: poista käyttäjien tiedot ennen kuin tiedostot lähtevät järjestelmästäsi. Lue vaatimustenmukaisuuden yleiskatsauksemme kaikista artiklan 28 säännöistä.

Miksi JSON-rakenne tekee tunnistuksesta vaikeaa

JSON-lokitiedostot vaihtelevat rakenteeltaan. Yleinen tekstiskannaus ei riitä.

Sisäkkäisyyden syvyys: Käyttäjien tiedot esiintyvät millä tahansa syvyydellä. Kenttä request.headers.x-forwarded-for sisältää IP-osoitteita. Kenttä response.body.errors[0].field_value voi sisältää käyttäjän syötteen. Tasainen tekstiskannaus jättää huomaamatta kentät, jotka on haudattu sisäkkäisiin polkuihin.

Epäjohdonmukaiset skeemat: Kukin API-päätepiste tuottaa oman tulostusmuotonsa. Autentikointitiedostot eivät näytä maksutiedostoilta. Profiilipäivitystiedostot eivät näytä kummaltakaan. Kiinteä polkupohjainen lähestymistapa jättää huomaamatta käyttäjien tiedot, jotka esiintyvät oudoissa poluissa virheyhteyksissä.

Tekninen data sekoittuneena henkilötietoon: Pino-jäljitykset, virhekoodit ja aikaleima on pidettävä ehjinä. Laaja poistaminen pyyhkii tarvittavat kentät ja tekee tiedostosta hyödyttömän.

Oikea lähestymistapa on sisältöpohjainen tunnistus. Löydä käyttäjien tiedot sen perusteella, mitä ne ovat — sähköpostikaava, IP-muoto, nimetty yksikkö — eikä sen perusteella, missä ne sijaitsevat rakenteessa. Tämä käsittelee muuttuvia skeemoja ilman päätepisteiden välistä asennusta.

Johdonmukainen korvaaminen pitää lokit hyödyllisinä

Avainvaatimus on viittauksellinen eheys. Jos sarah.johnson@company.com esiintyy 47 merkinnässä pyyntoketjun yli, kaikkien 47:n on viitattava samaan arvoon.

Korvaussäännöt:

  • sarah.johnson@company.comuser1@example.com (sama arvo koko tiedostossa)
  • 82.123.45.67192.0.2.1 (RFC 5737:n dokumentaatio-IP — selvästi ei todellinen)
  • +49 176 1234 5678+49 XXX XXX XXXX (peitetty)

Tällä kartoituksella kehittäjä voi jäljittää user1@example.com 47 merkinnän läpi, rakentaa pyyntoketjun uudelleen ja korjata bugin — näkemättä todellisia käyttäjän tietoja.

Nämä metatietokentät pysyvät muuttumattomina:

  • Aikaleima (ei käyttäjädata)
  • Virhekoodit ja tyypit (ei käyttäjädata)
  • Pino-jäljitykset (saattavat sisältää teknisiä tunnuksia, ei käyttäjädataa)
  • HTTP-menetelmät, polut, statuskoodit (ei käyttäjädata)
  • Mittausarvot ja viivelukemat (ei käyttäjädata)

Tulos on tiedosto, joka toimii debuggauksessa. Se ei sisällä todellisia käyttäjien tietoja. Katso sanastomme anonymisoinnin ja pseudonymisoinnin erosta GDPR:n alla.

Käyttötapaus: Lokien jakaminen tietoturvatestauksen kanssa

SaaS-yritys suoritti neljännesvuosittaisen tietoturvatarkastuksen ulkopuolisen testaustiimin kanssa. Laajuus edellytti 90 päivää tuotanto-API-tulostetta autentikointivirtojen kartoittamiseen ja virhekaavioiden analysointiin.

Raakavolyymi: 180 MB JSON-tiedostoja. Henkilötietojen määrä: 4 200 yksilöllistä käyttäjien sähköpostia, 1 800 yksilöllistä IP-osoitetta, 340 osittaista tilinumeroa virheyhteyksissä.

Ilman käyttäjien tietojen poistamista näiden tiedostojen jakaminen olisi vaatinut:

  • Tietojenkäsittelysopimuksen testausyrityksen kanssa
  • GDPR:n artiklan 46 mukaisen siirtovälineen (yritys sijaitsi EU:n ulkopuolella)
  • Rekisteröidyn ilmoitusarvioinnin

Kukin näistä lisää oikeudellista työtä ja aikaa.

Henkilötietojen poistamisen jälkeen:

  • Käsittelyaika: 25 minuuttia 180 MB:lle
  • Tuotos: 180 MB rakenteellisesti identtisiä tiedostoja, kaikki sähköpostit ja IP-osoitteet korvattu turvallisilla arvoilla
  • Tulos: testaustiimi sai täydellisen kontekstin; yksikään todellinen käyttäjätieto ei tavoittanut heitä
  • GDPR-tulos: ei tietojenkäsittelysopimusta vaadittu — poistettu tuloste ei ole GDPR:n mukaista käyttäjädataa

Katso FAQ-sivumme yleisistä kysymyksistä siitä, mikä lasketaan GDPR:n alla anonyymiksi.

Henkilötietojen poistamisen integrointi CI/CD-pipelineen

Tiimeille, jotka jakavat tulostetta säännöllisesti, tämä vaihe voidaan suorittaa olemassa olevissa pipelinesissa.

Lokien rotatointi:

  1. Rotatointiskripti ajaa yöllä
  2. Poistovaihe ajaa ennen arkistointia tai toimitusta lokialustalle
  3. Poistetut tiedostot menevät ulkoisiin järjestelmiin
  4. Alkuperäiset tiedostot pysyvät sisäisesti täydellä säilytysajalla

Ennakkojakoskripti:

  1. Insinööri tarvitsee otoksen jakamiseksi urakoitsijalle
  2. Ajaa skriptin: input=raw-logs/ output=clean-logs/
  3. Jakaa clean-logs/-kansion
  4. Ei manuaalista henkilötietojen tarkistusta tarvita

Sivuvaunulähetys:

  1. Sivuvaunu poistaa tulostusvirran ennen edelleen välittämistä
  2. Reaaliaikainen poistaminen ylläpitää hyödyllisyyttä lokianalytiikassa
  3. Alusta vastaanottaa nolla todellisia käyttäjätietoja

Säilytysperiaatteen integrointi

GDPR:n artikla 5(1)(e) edellyttää tallennusrajoitusta. Henkilötietojen poistaminen sopii mihin tahansa säilytysperiaatteeseen.

  • Raakalokit säilytetään 7 päivää (päivittäiseen debuggaukseen)
  • Poistetut versiot säilytetään 90 päivää (trendien analyysiin ja häiriöiden tarkastukseen)
  • Poistovaihe ajaa päivänä 7

Tämä täyttää tallennusrajoituksen. Se poistaa riskin raakalokien pitkäaikaisesta säilytyksestä.

Lähteet

Valmiina suojaamaan tietojasi?

Aloita PII-anonymisointi yli 285 entiteettityypillä 48 kielellä.

About this page

We update this page when our platform or the law changes.

Read our founder note for how we work.

Each change shows up in the timestamp at the top.

Related reading

We follow these rules

  • GDPR (EU 2016/679).
  • ISO/IEC 27001:2022.
  • NIS2 (EU 2022/2555).
  • HIPAA safe harbor under 45 CFR § 164.514(b)(2).

Our promise

We do not sell your data.

We do not train models on your text.

We store your files in Germany.

You can delete your account at any time.

You own your work.

Where we run

Our servers live in Falkenstein, Germany.

We use Hetzner. They hold ISO 27001 certification.

All data stays in the EU.

Backups run every day.

Need help?

Email support@anonym.legal.

We reply within one business day.

How we test

We run a full check suite on every release.

Each surface gets its own sweep script and report.

Human reviewers spot-check the output each week.

We track recall and precision on a labelled set.

Bad runs block the deploy.

What we never do

  • We never sell your information to third parties.
  • We never train models on what you upload.
  • We never keep your work after you delete it.
  • We never share keys with any outside firm.
  • We never run ads inside the product.

Plans in plain words

We sell credits, not seats.

One credit covers one short job.

Long jobs use a few credits each.

You can top up at any time.

Unused credits roll over each month.

Read the plans page for current rates.

Who built this

A small team of engineers and lawyers built this.

We ship from Europe and work in the open.

Our founder note spells out why we started.

Where to start

How the parts fit

A browser add-on cleans text inside Chrome.

A Word plug-in handles drafts in Office.

A small desktop tool works on whole folders.

An agent protocol link feeds large models safely.

All four share one core engine and one rule set.

Words from our team

We started this work after a lunch about cookies.

One friend kept getting odd ads on her phone.

We asked why a court file leaked through a draft.

We sketched the first build on a napkin that week.

By month three we had a tiny demo for a friend.

She used it on her first case the next day.

Common questions we hear

Can the tool read scanned PDFs? Yes, with OCR.

Does it work on long files? Yes, in small chunks.

Can I roll my own rule set? Yes, save it as a preset.

Does it run offline? The desktop build runs offline.

Do you keep my files? No, the cloud build wipes after each run.

Will it learn from my work? No, we never train on inputs.

A short tour of the workflow

Upload a file or paste a snippet of prose.

Pick the entities you want gone from the draft.

Choose a method: replace, mask, hash, encrypt, or redact.

Press run and watch the side panel show each hit.

Skim the result and tweak any rule that misfired.

Save the cleaned file or send it to a teammate.