By · Last updated 2026-05-29

Bloga DönTeknik

GDPR Uyumlu Boru Hattı: Depolamadan Önce Anonimleştirin

dbt sütun etiketleri GDPR uyumu değildir. Ham müşteri verileri, etiket tabanlı politikalar devreye girmeden önce Snowflake ambarınıza maskelenmemiş olarak ulaşır.

May 29, 20268 dk okuma
data pipelinedbtSnowflakedata warehouseELT anonymizationGDPR engineering

GDPR Uyumlu Boru Hattı: KKV'yi Depolamadan Önce Anonimleştirin

2026 için Güncellendi

dbt'de KKV sütunlarını etiketlediniz. Snowflake'te dinamik maskeleme kurulumu yaptınız. GDPR uyumlu olduğunuzu düşünüyorsunuz.

Kaynak içerik hâlâ ambara maskelenmemiş olarak ulaşıyor. Maskeleme sorgu zamanında çalışır. Maskelenmemiş içerik ham şemanızda oturuyor. Ham şema erişimi olan herkes onu okuyabilir. dbt modelleriniz, maskeleme politikaları oluşturulmadan önce çalıştı. Eski alınan tablolar hiç maskelenmedi.

"Maskeleme politikalarımız var" ile "boru hattımız güvenli" arasındaki boşluk, GDPR ihlallerinin yaşandığı yerdir.

Anonym.legal'in GDPR'ı nasıl desteklediği için uyum genel bakışımıza bakın.

ELT Boru Hatları KKV'yi Nasıl Açığa Çıkarır

Çıkar-Yükle-Dönüştür (ELT) kalıbı artık standart haline geldi. Kaynak verileri önce ambara yükler. Dönüşümler sonra gelir. Adımlar şöyle görünür:

  1. Çıkar: Kaynak sistemler tüm alanları dışa aktarır. Salesforce CRM, Stripe ödemeleri, Intercom desteği — her şey çıkar.
  2. Yükle: Kaynak veriler ambarın alım şemasına düşer. Snowflake, BigQuery, Redshift hepsi aynı şekilde çalışır. Her KKV alanı dahil edilir.
  3. Dönüştür: dbt modelleri analitik için veriyi temizler ve birleştirir.

Alım katmanı tam kişisel bilgi tutar. İsimler, e-posta adresleri, telefon numaraları, ödeme ayrıntıları, destek bileti metni. Pek çok ekipte mühendisler ve analistler ham şema erişimine sahiptir. Bu tablolara istedikleri zaman sorgu atabilirler.

Snowflake'teki etiket tabanlı maskeleme, sorgu zamanında yardımcı olur. Ancak yalnızca düzgün kurulmuş aşağı akış modelleri için. Eski alınan tabloları maskelemez. Doğrudan şema sorgularını engellemez. Her model ve panelin etiketlenmesi gerekir. Bu yük, şema büyüdükçe artar.

Yüklemeden Önce Anonimleştirin

Boru hattı düzeyinde KKV'yi anonimleştirmek, ham katman riskini ortadan kaldırır. Bunu içerik ambara ulaşmadan önce yapın.

ETL yaklaşımı (yüklemeden önce anonimleştirme):

  1. Kaynak sistemlerden çıkar
  2. Anonimleştirme adımından geçir
  3. Temiz çıktıyı ambara yükle

Ambar hiçbir zaman maskelenmemiş KKV almaz. Alım şeması yalnızca temiz içerik tutar. Aşağı akış modelleri, panolar ve doğrudan sorgular temiz çıktıyla çalışır.

İki ana yol vardır.

Seçenek 1 — API entegrasyonu:

Web kancaları veya akış dışa aktarımları olan sistemler için girişleri önce anonym.legal API'sinden geçirin. Intercom'dan çıkan destek biletleri ambara gitmeden önce API'den geçer. Stripe dışa aktarımları da aynı şekilde.

POST /api/anonymize
{
  "text": "Müşteri John Smith (john@example.com) bildirdi...",
  "entities": ["PERSON", "EMAIL_ADDRESS", "PHONE_NUMBER"],
  "method": "replace"
}

Seçenek 2 — Toplu ön işleme:

Günlük veya haftalık CSV/JSON dosya dışa aktarımları için, yüklemeden önce dosyaları toplu işlemden geçirin.

Airflow DAG yapısı:

extract_task >> anonymize_batch_task >> load_to_warehouse_task

Anonimleştirme görevi dosyaları yükler ve temiz versiyonlarını alır. Yükleme görevi geri kalanını halleder.

Alt işlemci ve veri akışı ayrıntıları için güvenlik uygulamaları sayfamıza bakın.

dbt Sütun Etiketlerinin Yapıp Yapamadıkları

dbt, KKV sütunlarını etiketlemenize izin verir:

models:
  - name: stg_customers
    columns:
      - name: email
        tags: ['pii', 'email']
      - name: full_name
        tags: ['pii', 'personal_data']

Etiketlerle yapabilecekleriniz:

  • KKV'nin nerede yaşadığını belgeleyin
  • Aşağı akış maskeleme politikalarını tetikleyin (ambar düzeyinde kurulum gerektirir)
  • Secoda gibi araçlarla köken takibi yapın

Etiketlerin yapamadıkları:

  • Ham şemadaki alınan tabloları maskeleme
  • Doğrudan tablo sorgularını engelleme
  • Yükleme zamanında veriyi anonimleştirme
  • Eski veriyi geriye dönük olarak maskeleme

dbt sütun etiketleri bir yönetişim aracıdır. KKV'nin nerede olduğunu gösterir. GDPR Madde 32'nin gerektirdiği "uygun teknik tedbirleri" uygulamaz.

Snowflake Maskeleme Açığı

Snowflake'in dinamik maskelemesi, sütun içeriğini kullanıcılardan sorgu zamanında gizler. Üretim kullanımı için güçlü bir kontroldür. Ancak net sınırları vardır.

Temel sınırlar:

  • Her yeni sütun için açık bir politika gerekir
  • Şema değişiklikleri, politikaları güncelleyene kadar yeni sütunları maskelenmemiş bırakabilir
  • SYSADMIN ve ACCOUNTADMIN rolleri maskelemeyi atlayabilir
  • İçe aktarma işleri çoğunlukla maskelemeyi atlayan yüksek ayrıcalıklarla çalışır
  • Politikalar belirlenmeden yüklenen eski veriler düz biçimde saklanır — politikalar yazma zamanında değil, okuma zamanında çalışır

Sorgu zamanında maskeleme yeterli değildir. Veri depolanmadan önce temiz olmalıdır.

Uyum Belgelendirmesi

GDPR'ın hesap verebilirlik kuralı kanıt gerektirir. Söz yeterli değildir. Mühendislik ekipleri için bu yazılı kayıtlar anlamına gelir.

İşleme Faaliyetleri Kaydı (ROPA): Müşteri bilgilerinin analitik ambara yüklenmeden önce anonimleştirildiğini belgeleyin. Anonimleştirme adımı, GDPR kapsamında bir işleme faaliyetidir.

Teknik tedbir notları: Boru hattınızın hedeflediği varlık türlerini yazın. Kullanılan anonimleştirme yöntemini not edin. Toplu çalışma günlükleri bunu ücretsiz sağlar.

Veri köken takibi: Secoda veya dbt'nin yerleşik köken takibi, kaynak tabloların analitik modellere ulaşmadan önce bir anonimleştirme adımından geçtiğini gösterebilir. Bu, denetim izinizdir.

Tedarikçi kaydı: Anonimleştirme hizmeti bir alt işlemcidir. Veri İşleme Sözleşmeleri ve gizlilik politikaları tedarikçi kaydınızda yer almalıdır.

Uygulama Adımları

dbt ve Snowflake boru hattı için:

Adım 1: Ham katmanı denetleyin

Hangi tabloların kişisel bilgi içerdiğini bulun. KKV etiketli tabloları bulmak için dbt sütun etiketlerinizi veya kataloğunuzu sorgulayın.

Adım 2: Anonimleştirme kapsamını belirleyin

Her kaynak tablo için hangi sütunların KKV içerdiğine karar verin. Ardından hangilerinin anonimleştirme, hangilerinin sözde anonimleştirme gerektirdiğine karar verin. Destek bileti gövdesi: anonimleştir. Sipariş kimliği: birleştirme anahtarlarını korumak için sözde anonimleştir. Zaman damgası: zaman serisi analizi için olduğu gibi bırak.

Adım 3: Bir uygulama yolu seçin

Toplu dışa aktarımlarla küçük ekip: yüklemeden önce toplu dosya işlemeyi kullanın. Mühendislik ekibi mevcut: Airflow veya Prefect'te API entegrasyonu oluşturun.

Adım 4: Test edin ve doğrulayın

Canlıya geçmeden önce bir örnek üzerinde anonimleştirme çalıştırın. dbt modellerinin hâlâ çalışıp çalışmadığını kontrol edin. Bazı modeller e-posta üzerinden birleştirir. Bunlar tutarlı değiştirme değerleri gerektirir. Sözde anonimleştirme birleştirme anahtarlarını korur. Redaksiyon onları bozar.

Adım 5: Eski ham tabloları işleyin

Anonimleştirme kurulmadan önce yüklenen içeriğin geriye dönük işlenmesi gerekir. Dışa aktarın, anonimleştirin, yeniden yükleyin. Bu tablo başına tek seferlik bir görevdir.

Sonuç

Etiket tabanlı maskeleme, KKV'nin nerede yaşadığını gösterir. Şema erişimi olan kullanıcıların onu okumasını engellemez. Gerçek GDPR uyumu için, KKV ambara ulaşmadan önce temiz olmalıdır. Bu, alım katmanını üretim katmanı kadar güvenli kılar.

Bu, sütun etiketlemekten daha zordur. Ancak "uygun teknik tedbirler" gerçekte bunu ifade eder.

Kaynaklar

Verilerinizi korumaya hazır mısınız?

48 dilde 285+ varlık türü ile PII anonimleştirmeye başlayın.

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.