By · Last updated 2026-06-05

Kembali ke BlogTeknis

Anonimisasi Log GDPR: Tetap Bisa Debug

Log aplikasi secara diam-diam mengumpulkan email pengguna, IP, dan nomor akun. Begini cara berbagi log dengan pihak ketiga, kontraktor, dan platform observabilitas tanpa melanggar GDPR.

June 5, 20267 menit baca
JSON logsGDPR complianceDevOps privacylog anonymizationdata minimization

PII Bersembunyi di Log Aplikasi

Log aplikasi adalah salah satu permukaan GDPR yang paling sering diabaikan dalam rekayasa perangkat lunak. Bukan karena engineer mengabaikan hukum. Melainkan karena detail pengguna masuk ke file log secara tidak sengaja.

Satu log permintaan JSON bisa menyimpan empat kolom PII:

{
  "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"
}

Satu entri itu menyimpan email, IP, dan nomor telepon. Kalikan itu dengan jutaan panggilan API harian. Hasilnya adalah aktivitas PII yang signifikan. Ini membutuhkan dasar hukum, batasan, dan kontrol.

Berbagi Log dengan Pihak Ketiga Meningkatkan Risiko GDPR

Tim berbagi file log dengan pihak luar setiap saat:

  • Firma pen test mendapatkan catatan untuk memetakan perilaku aplikasi
  • Konsultan luar menggunakan sampel log untuk menemukan titik lambat
  • Platform log (Elastic, Datadog, Splunk) menerima aliran output penuh
  • Kontraktor SRE mengakses catatan selama insiden
  • Tim dev di entitas hukum lain menerima file untuk debugging

Setiap berbagi memunculkan pertanyaan GDPR Pasal 28. Apakah penerima adalah prosesor? Apakah ada Perjanjian Pemrosesan Data? Apakah mereka memiliki dasar hukum untuk melihat detail pengguna dalam file tersebut?

Platform log adalah celah umum. Mengirim output dengan email dan IP pengguna nyata ke Elastic Cloud atau Datadog menciptakan tautan pemrosesan. Tautan itu membutuhkan DPA, klausul standar, dan alat transfer jika platform berada di luar EU. Masing-masing membutuhkan waktu dan tinjauan hukum.

Jalur yang lebih sederhana: hapus detail pengguna sebelum file meninggalkan sistem Anda. Baca ikhtisar kepatuhan kami untuk aturan Pasal 28 lengkap.

Mengapa Struktur JSON Membuat Deteksi Sulit

File log JSON bervariasi dalam strukturnya. Pemindaian teks generik saja tidak cukup.

Kedalaman bersarang: Detail pengguna muncul di kedalaman apa pun. Field request.headers.x-forwarded-for menyimpan alamat IP. Field response.body.errors[0].field_value mungkin menyimpan input pengguna. Pemindaian teks datar melewatkan field yang terkubur di jalur bersarang.

Skema yang tidak konsisten: Setiap endpoint API menghasilkan bentuk output tersendiri. File auth tidak sama dengan file pembayaran. File pembaruan profil berbeda dari keduanya. Pendekatan jalur tetap melewatkan detail pengguna yang muncul di jalur aneh dalam konteks error.

Nilai teknis bercampur dengan PII: Stack trace, kode error, dan timestamp harus tetap utuh. Penghapusan menyeluruh menghapus field yang diperlukan dan membuat file tidak berguna.

Pendekatan yang tepat adalah deteksi berbasis konten. Temukan detail pengguna berdasarkan apa adanya — pola email, format IP, entitas bernama — bukan berdasarkan lokasinya dalam struktur. Ini menangani skema yang bervariasi tanpa pengaturan per endpoint.

Penggantian Konsisten Menjaga Log Tetap Berguna

Persyaratan utama adalah integritas referensial. Jika sarah.johnson@company.com muncul di 47 entri dalam satu rantai permintaan, semua 47 harus dipetakan ke nilai yang sama.

Aturan pemetaan:

  • sarah.johnson@company.comuser1@example.com (nilai yang sama di seluruh file)
  • 82.123.45.67192.0.2.1 (IP dokumentasi RFC 5737 — jelas bukan yang nyata)
  • +49 176 1234 5678+49 XXX XXX XXXX (disamarkan)

Dengan pemetaan itu, seorang developer bisa melacak user1@example.com melalui 47 entri, merekonstruksi rantai permintaan, dan memperbaiki bug — tanpa melihat detail pengguna nyata.

Field metadata ini tetap tidak berubah:

  • Timestamp (bukan data pengguna)
  • Kode dan jenis error (bukan data pengguna)
  • Stack trace (mungkin mengandung ID teknis, bukan data pengguna)
  • Metode HTTP, jalur, kode status (bukan data pengguna)
  • Nilai metrik dan latensi (bukan data pengguna)

Hasilnya adalah file yang berguna untuk pekerjaan debug. File tersebut tidak mengandung detail pengguna nyata. Lihat glosarium kami untuk perbedaan antara anonimisasi dan pseudonimisasi di bawah GDPR.

Kasus Penggunaan: Berbagi Log untuk Pen Test

Sebuah perusahaan SaaS menjalankan tinjauan keamanan kuartalan dengan tim pen test eksternal. Cakupannya membutuhkan 90 hari output API produksi untuk memetakan alur auth dan menganalisis pola error.

Volume mentah: 180 MB file JSON. Jumlah PII: 4.200 email pengguna unik, 1.800 IP unik, 340 nomor akun parsial dalam konteks error.

Tanpa menghapus detail pengguna terlebih dahulu, berbagi file tersebut akan membutuhkan:

  • DPA dengan firma pen test
  • Alat transfer GDPR Pasal 46 (firma tersebut berlokasi di luar EU)
  • Tinjauan pemberitahuan subjek data

Masing-masing menambah pekerjaan hukum dan waktu.

Dengan penghapusan PII diterapkan:

  • Waktu pemrosesan: 25 menit untuk 180 MB
  • Output: 180 MB file yang identik secara struktural, semua email dan IP diganti dengan nilai aman
  • Hasil: tim pen test menerima konteks penuh; nol detail pengguna nyata yang sampai ke mereka
  • Hasil GDPR: tidak diperlukan DPA — output yang sudah dihapus bukan data pengguna di bawah GDPR

Lihat FAQ kami untuk pertanyaan umum tentang apa yang dianggap anonim di bawah GDPR.

Mengintegrasikan Penghapusan PII ke dalam CI/CD

Bagi tim yang berbagi output secara reguler, langkah ini bisa berjalan di dalam pipeline yang sudah ada.

Rotasi log:

  1. Skrip rotasi berjalan setiap malam
  2. Langkah penghapusan berjalan sebelum pengarsipan atau pengiriman ke platform log mana pun
  3. File yang sudah dihapus dikirim ke sistem eksternal
  4. File asli tetap internal dengan retensi penuh

Skrip pra-berbagi:

  1. Engineer perlu berbagi sampel dengan kontraktor
  2. Jalankan skrip: input=raw-logs/ output=clean-logs/
  3. Bagikan folder clean-logs/
  4. Tidak perlu tinjauan PII manual

Pendekatan sidecar:

  1. Sidecar menghapus aliran output sebelum meneruskannya
  2. Penghapusan real-time mempertahankan utilitas untuk analisis log
  3. Platform menerima nol detail pengguna nyata

Integrasi Kebijakan Retensi

GDPR Pasal 5(1)(e) mengharuskan pembatasan penyimpanan. Penghapusan PII cocok dengan kebijakan retensi apa pun.

  • Output mentah disimpan selama 7 hari (untuk pekerjaan debug sehari-hari)
  • Versi yang sudah dihapus disimpan selama 90 hari (untuk analisis tren dan tinjauan insiden)
  • Langkah penghapusan berjalan pada hari ke-7

Ini memenuhi pembatasan penyimpanan. Ini menghilangkan risiko menyimpan output mentah jangka panjang.

Sumber

Siap untuk melindungi data Anda?

Mulai anonimisasi PII dengan 285+ jenis entitas dalam 48 bahasa.

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.