By · Last updated 2026-05-29

بازگشت به وبلاگفنی

خط لوله GDPR: PII را قبل از ذخیره‌سازی ناشناس کنید

برچسب‌های ستون dbt انطباق GDPR نیستند. داده‌های خام مشتری قبل از اعمال سیاست‌های برچسب‌محور به انبار Snowflake شما بدون ماسک می‌رسند.

May 29, 20268 دقیقه مطالعه
data pipelinedbtSnowflakedata warehouseELT anonymizationGDPR engineering

خط لوله امن GDPR: PII را قبل از ذخیره‌سازی ناشناس کنید

به‌روزرسانی برای ۲۰۲۶

ستون‌های PII خود را در dbt برچسب‌گذاری کردید. ماسک‌گذاری پویا در Snowflake راه‌اندازی کردید. احساس می‌کنید با GDPR مطابقت دارید.

محتوای منبع شما همچنان بدون ماسک در انبار قرار می‌گیرد. ماسک‌گذاری در زمان کوئری اجرا می‌شود. محتوای بدون ماسک در طرح raw شما می‌نشیند. هر کسی با دسترسی به طرح raw می‌تواند آن را بخواند. مدل‌های dbt شما قبل از وجود سیاست‌های ماسک‌گذاری اجرا شدند. جداول قدیمی بارگذاری‌شده هرگز ماسک‌گذاری نشدند.

شکاف بین «ما سیاست‌های ماسک‌گذاری داریم» و «خط لوله ما ایمن است» جایی است که نقض GDPR اتفاق می‌افتد.

برای اینکه ببینید anonym.legal چگونه از GDPR پشتیبانی می‌کند، نمای کلی انطباق ما را ببینید.

چگونه خطوط لوله ELT PII را افشا می‌کنند

الگوی Extract-Load-Transform (ELT) اکنون هنجار است. ابتدا داده‌های منبع را در انبار بارگذاری می‌کند. تبدیل‌ها بعداً می‌آیند. مراحل به این شکل هستند:

  1. استخراج: سیستم‌های منبع تمام فیلدها را صادر می‌کنند. CRM Salesforce، پرداخت‌های Stripe، پشتیبانی Intercom — همه چیز خارج می‌شود.
  2. بارگذاری: داده‌های منبع در طرح ورودی انبار قرار می‌گیرند. Snowflake، BigQuery، Redshift همه به یک شکل عمل می‌کنند. هر فیلد PII گنجانده شده است.
  3. تبدیل: مدل‌های dbt داده‌ها را برای تحلیل پاک‌سازی و پیوند می‌دهند.

لایه ورودی اطلاعات شخصی کامل نگه می‌دارد. نام‌ها، آدرس‌های ایمیل، شماره تلفن‌ها، جزئیات پرداخت، متن تیکت پشتیبانی. در بسیاری از تیم‌ها، مهندسان و تحلیلگران دسترسی به طرح raw دارند. آنها می‌توانند هر زمان این جداول را کوئری بزنند.

ماسک‌گذاری مبتنی بر برچسب در Snowflake در زمان کوئری کمک می‌کند. اما فقط برای مدل‌های downstream که به درستی راه‌اندازی شده‌اند. جداول قدیمی ورودی را ماسک‌گذاری نمی‌کند. کوئری‌های مستقیم طرح را مسدود نمی‌کند.

قبل از بارگذاری ناشناس کنید

ناشناس‌سازی PII در سطح خط لوله ریسک لایه raw را حذف می‌کند. آن را قبل از اینکه محتوا به انبار برسد انجام دهید.

رویکرد ETL (ناشناس‌سازی قبل از بارگذاری):

  1. از سیستم‌های منبع استخراج کنید
  2. از طریق یک مرحله ناشناس‌سازی اجرا کنید
  3. خروجی تمیز را در انبار بارگذاری کنید

انبار هرگز PII بدون ماسک دریافت نمی‌کند. طرح ورودی فقط محتوای تمیز نگه می‌دارد. مدل‌های downstream، داشبوردها و کوئری‌های مستقیم همه با خروجی تمیز کار می‌کنند.

دو مسیر اصلی دارید.

گزینه ۱ — یکپارچه‌سازی API:

برای سیستم‌هایی با صادرات webhook یا جریانی، ورودی‌ها را ابتدا از طریق API anonym.legal مسیریابی کنید.

POST /api/anonymize
{
  "text": "Customer John Smith (john@example.com) reported...",
  "entities": ["PERSON", "EMAIL_ADDRESS", "PHONE_NUMBER"],
  "method": "replace"
}

گزینه ۲ — پیش‌پردازش دسته‌ای:

برای صادرات فایل CSV/JSON روزانه یا هفتگی، فایل‌ها را قبل از بارگذاری از طریق پردازش دسته‌ای اجرا کنید.

ساختار Airflow DAG:

extract_task >> anonymize_batch_task >> load_to_warehouse_task

وظیفه ناشناس‌سازی فایل‌ها را آپلود می‌کند و نسخه‌های تمیز را برمی‌گرداند. وظیفه بارگذاری بقیه را انجام می‌دهد.

برای جزئیات زیرپردازنده و جریان داده، صفحه اقدامات امنیتی ما را ببینید.

برچسب‌های ستون dbt چه می‌کنند و چه نمی‌کنند

dbt به شما امکان می‌دهد ستون‌های PII را برچسب‌گذاری کنید:

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

برچسب‌ها به شما امکان می‌دهند:

  • مستند کنید PII کجا قرار دارد
  • سیاست‌های ماسک‌گذاری downstream را فعال کنید (نیاز به راه‌اندازی در سطح انبار دارد)
  • دنباله‌گذاری با ابزارهایی مانند Secoda را ردیابی کنید

برچسب‌ها نمی‌توانند:

  • جداول ورودی در طرح raw را ماسک کنند
  • کوئری‌های مستقیم جدول را مسدود کنند
  • داده‌ها را در زمان بارگذاری ناشناس کنند
  • داده‌های قدیمی را به صورت گذشته‌نگر ماسک کنند

برچسب‌های ستون dbt ابزار حاکمیت هستند. نشان می‌دهند PII کجاست. «اقدامات فنی مناسب» که ماده ۳۲ GDPR نیاز دارد را اعمال نمی‌کنند.

شکاف ماسک‌گذاری Snowflake

ماسک‌گذاری پویا Snowflake محتوای ستون را از کاربران در زمان کوئری پنهان می‌کند. این یک کنترل قوی برای استفاده تولید است. اما محدودیت‌های واضحی دارد.

محدودیت‌های کلیدی:

  • هر ستون جدید به سیاست صریح نیاز دارد
  • تغییرات طرح می‌توانند ستون‌های جدید را تا زمان به‌روزرسانی سیاست‌ها بدون ماسک باقی بگذارند
  • نقش‌های SYSADMIN و ACCOUNTADMIN می‌توانند ماسک‌گذاری را دور بزنند
  • کارهای ورود اغلب با امتیازات بالایی اجرا می‌شوند که ماسک‌گذاری را رد می‌کنند
  • داده‌های قدیمی بارگذاری‌شده قبل از تنظیم سیاست‌ها به صورت متن ساده ذخیره شده‌اند

ماسک‌گذاری در زمان کوئری کافی نیست. داده‌ها باید قبل از ذخیره‌سازی تمیز باشند.

مستندات انطباق

قانون پاسخگویی GDPR نیاز به اثبات دارد. کلمات کافی نیستند. برای تیم‌های مهندسی این به معنای سوابق کتبی است.

سوابق فعالیت‌های پردازش (ROPA): مستند کنید که اطلاعات مشتری قبل از بارگذاری به انبار تحلیلی ناشناس می‌شود.

یادداشت‌های تضمین فنی: بنویسید کدام نوع موجودیت‌ها خط لوله شما را هدف قرار می‌دهند. روش ناشناس‌سازی استفاده‌شده را یادداشت کنید.

دنباله داده: Secoda یا دنباله داخلی dbt می‌توانند نشان دهند که جداول منبع از طریق یک مرحله ناشناس‌سازی قبل از رسیدن به مدل‌های تحلیلی جریان می‌یابند.

ثبت فروشنده: سرویس ناشناس‌سازی یک زیرپردازنده است. DPA و سیاست حریم خصوصی آنها باید در ثبت فروشنده شما باشد.

مراحل پیاده‌سازی

برای یک خط لوله dbt و Snowflake:

مرحله ۱: لایه raw خود را حسابرسی کنید

پیدا کنید کدام جداول اطلاعات شخصی نگه می‌دارند.

مرحله ۲: محدوده ناشناس‌سازی را تعیین کنید

برای هر جدول منبع، تصمیم بگیرید کدام ستون‌ها PII نگه می‌دارند. سپس تصمیم بگیرید کدام‌ها نیاز به ناشناس‌سازی دارند و کدام‌ها نیاز به شبه‌ناشناس‌سازی.

مرحله ۳: مسیر پیاده‌سازی را انتخاب کنید

تیم کوچک با صادرات دسته‌ای: از پردازش دسته‌ای فایل قبل از بارگذاری استفاده کنید. تیم مهندسی در دسترس: یکپارچه‌سازی API را در Airflow یا Prefect بسازید.

مرحله ۴: آزمایش و اعتبارسنجی کنید

قبل از راه‌اندازی روی نمونه ناشناس‌سازی اجرا کنید. بررسی کنید مدل‌های dbt همچنان کار می‌کنند.

مرحله ۵: جداول raw قدیمی را مدیریت کنید

محتوای بارگذاری‌شده قبل از ناشناس‌سازی نیاز به پردازش گذشته‌نگر دارد. صادر کنید، ناشناس کنید، دوباره بارگذاری کنید.

نتیجه‌گیری

ماسک‌گذاری مبتنی بر برچسب نشان می‌دهد PII کجاست. کاربرانی با دسترسی طرح را از خواندن آن باز نمی‌دارد. برای انطباق واقعی GDPR، PII باید قبل از رسیدن به انبار تمیز باشد. این لایه ورودی را به اندازه لایه تولید ایمن می‌کند.

این سخت‌تر از برچسب‌گذاری ستون است. اما این چیزی است که «اقدامات فنی مناسب» واقعاً به معنای آن است.

منابع

آماده‌اید داده‌های خود را محافظت کنید؟

شروع به ناشناس‌سازی PII با بیش از ۲۸۵ نوع نهاد در ۴۸ زبان.

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.