Kembali ke BlogGDPR & Pematuhan

Konsistensi Penganoniman: Preset untuk Audit GDPR...

Ketika menganonimkan pelbagai dokumen untuk audit GDPR, preset memastikan ID pelanggan yang sama diubah secara konsisten di semua fail.

April 19, 20266 min baca
GDPR auditprivacy configurationanonymization consistencyteam compliancepresets

Konsistensi Penganoniman: Preset untuk Audit GDPR Konsisten

Semasa menjalankan audit GDPR, organisasi anda mungkin perlu menganonimkan:

  • 5,000 tiket sokongan pelanggan
  • 2,000 email klien
  • 500 dokumen kontrak
  • 300 rekod pembayaran

Jika anda menganonimkan setiap dokumen secara bebas, ID pelanggan yang sama mungkin diubah dengan cara yang berbeza:

Dokumen A: "Pelanggan CUST_2024_5731 telah membatalkan" Dokumen B: "Pelanggan 5731 membuat keluhan"

Dengan penganoniman bebas:

  • Dokumen A → "Pelanggan [CUSTOMER_1] telah membatalkan"
  • Dokumen B → "Pelanggan [REDACTED] membuat keluhan" ← inconsistent

Untuk audit konsisten, gunakan preset pemetaan yang menurut semua dokumen untuk ID yang sama:

{
  "CUSTOMER_5731": "[CUSTOMER_A]",
  "EMPLOYEE_1234": "[EMPLOYEE_B]",
  "ORDER_9876": "[ORDER_C]"
}

Pembinaan Preset Pemetaan Konsisten

Langkah 1: Kenal Pasti Semua Entiti di Semua Dokumen

from presidio_analyzer import AnalyzerEngine

analyzer = AnalyzerEngine()
entity_map = {}

for document in all_documents:
  results = analyzer.analyze(
    text=document["content"],
    language="en",
    entities=["PERSON", "CUSTOMER_ID", "EMPLOYEE_ID", ...]
  )
  
  for entity in results:
    key = f"{entity.entity_type}_{entity.text}"
    if key not in entity_map:
      entity_map[key] = None  # Akan ditetapkan di bawah

Langkah 2: Hasilkan Penggantian Unik untuk Setiap ID

import uuid

replacement_map = {}

for original_id in entity_map:
  entity_type, value = original_id.split("_", 1)
  
  # Buat penggantian yang koheren
  if entity_type == "PERSON":
    replacement = f"[PERSON_{len([k for k in replacement_map if k.startswith('PERSON')])+1}]"
  elif entity_type == "CUSTOMER_ID":
    replacement = f"[CUSTOMER_{uuid.uuid4().hex[:8]}]"
  else:
    replacement = f"[{entity_type}]"
  
  replacement_map[original_id] = replacement

# Simpan preset untuk digunakan di semua dokumen
with open("anonymization_preset.json", "w") as f:
  json.dump(replacement_map, f)

Langkah 3: Gunakan Preset pada Semua Dokumen

preset = json.load(open("anonymization_preset.json"))

anonymizer = AnonymizerEngine()

for document in all_documents:
  results = analyzer.analyze(text=document["content"])
  
  # Gunakan preset untuk menggantikan konsisten
  anonymized = anonymizer.anonymize(
    text=document["content"],
    analyzer_results=results,
    operators={
      entity.entity_type: OperatorConfig(
        "replace",
        params={
          "new_value": preset.get(
            f"{entity.entity_type}_{entity.text}",
            f"[{entity.entity_type}]"
          )
        }
      )
      for entity in results
    }
  )
  
  document["anonymized"] = anonymized

Manfaat Preset untuk Audit

  1. Dapat dilacak: Auditor dapat mengikuti rantai kejadian untuk pelanggan tunggal
  2. Konsisten: ID yang sama muncul dalam bentuk yang sama di semua dokumen
  3. Dapat diulang: Preset yang sama diterapkan jika dokumen baru ditambahkan kemudian
  4. Terbukti: Preset ini boleh disimpan sebagai bukti penganoniman GDPR yang tahan terhadap cabaran

Kesimpulan: Preset penggantian memastikan penganoniman konsisten di semua dokumen untuk audit GDPR yang dapat dipertahankan.

Sedia untuk melindungi data anda?

Mulakan pengenalan PII dengan 285+ jenis entiti dalam 48 bahasa.