GDPR-নিরাপদ পাইপলাইন: সংরক্ষণের আগে PII অ্যানোনিমাইজ করুন
2026 সালের জন্য আপডেট করা হয়েছে
আপনি dbt-তে আপনার PII কলামগুলিতে ট্যাগ করেছেন। আপনি Snowflake-এ ডায়নামিক মাস্কিং সেট আপ করেছেন। আপনি GDPR-সম্মত মনে করছেন।
কিন্তু আপনার সোর্স কন্টেন্ট এখনও ওয়্যারহাউসে আনমাস্কড অবস্থায় আসছে। মাস্কিং কোয়েরি সময়ে চলে। আনমাস্কড কন্টেন্ট আপনার raw স্কিমায় বসে আছে। raw স্কিমা অ্যাক্সেস সহ যেকেউ এটি পড়তে পারে।
"আমাদের মাস্কিং নীতি আছে" এবং "আমাদের পাইপলাইন নিরাপদ" এর মধ্যে ব্যবধানেই GDPR লঙ্ঘন ঘটে।
ELT পাইপলাইন কীভাবে PII প্রকাশ করে
Extract-Load-Transform (ELT) প্যাটার্ন এখন আদর্শ। এটি প্রথমে ওয়্যারহাউসে সোর্স ডেটা লোড করে। ট্রান্সফরম পরে আসে। ধাপগুলি এইরকম:
- Extract: সোর্স সিস্টেম সব ফিল্ড এক্সপোর্ট করে। Salesforce CRM, Stripe পেমেন্ট, Intercom সাপোর্ট — সবকিছু বের হয়।
- Load: সোর্স ডেটা ওয়্যারহাউস ingestion স্কিমায় আসে। Snowflake, BigQuery, Redshift সব একইভাবে কাজ করে। প্রতিটি PII ফিল্ড অন্তর্ভুক্ত।
- Transform: dbt মডেলগুলি analytics-এর জন্য ডেটা পরিষ্কার এবং যোগ করে।
Ingestion স্তর সম্পূর্ণ ব্যক্তিগত তথ্য ধারণ করে। নাম, ইমেইল ঠিকানা, ফোন নম্বর, পেমেন্ট বিবরণ, সাপোর্ট টিকিট টেক্সট।
লোডের আগে অ্যানোনিমাইজ করুন
পাইপলাইন স্তরে PII অ্যানোনিমাইজ করা raw-স্তরের ঝুঁকি দূর করে। ডেটা ওয়্যারহাউসে পৌঁছানোর আগে এটি করুন।
ETL পদ্ধতি (প্রি-লোড অ্যানোনিমাইজেশন):
- সোর্স সিস্টেম থেকে Extract করুন
- অ্যানোনিমাইজেশন ধাপের মধ্য দিয়ে চালান
- ওয়্যারহাউসে পরিষ্কার আউটপুট Load করুন
ওয়্যারহাউস কখনই আনমাস্কড PII পায় না।
আপনার দুটি প্রধান পথ আছে।
বিকল্প 1 — API ইন্টিগ্রেশন:
webhook বা streaming export সহ সিস্টেমের জন্য, entries anonym.legal API-এর মধ্য দিয়ে প্রথমে রুট করুন।
POST /api/anonymize
{
"text": "Customer John Smith (john@example.com) reported...",
"entities": ["PERSON", "EMAIL_ADDRESS", "PHONE_NUMBER"],
"method": "replace"
}
বিকল্প 2 — ব্যাচ প্রিপ্রসেসিং:
দৈনিক বা সাপ্তাহিক CSV/JSON ফাইল export-এর জন্য, লোড করার আগে ব্যাচ প্রক্রিয়াকরণের মধ্য দিয়ে ফাইল চালান।
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 কোথায় থাকে তা নথিভুক্ত করতে
- ডাউনস্ট্রিম মাস্কিং নীতি ট্রিগার করতে
- Secoda-র মতো সরঞ্জাম দিয়ে lineage ট্র্যাক করতে
ট্যাগগুলি করে না:
- raw স্কিমায় ingested টেবিল মাস্ক করে
- সরাসরি টেবিল কোয়েরি ব্লক করে
- লোড সময়ে ডেটা অ্যানোনিমাইজ করে
- পুরানো ডেটা পূর্ববর্তীভাবে মাস্ক করে
dbt কলাম ট্যাগ একটি গভর্ন্যান্স সরঞ্জাম। এটি দেখায় PII কোথায় আছে। এটি GDPR আর্টিকেল 32 যা দাবি করে "উপযুক্ত প্রযুক্তিগত ব্যবস্থা" প্রয়োগ করে না।
Snowflake মাস্কিং ব্যবধান
Snowflake-এর dynamic masking কোয়েরি সময়ে ব্যবহারকারীদের থেকে কলাম কন্টেন্ট লুকায়। এটি প্রোডাকশন ব্যবহারের জন্য একটি শক্তিশালী নিয়ন্ত্রণ। কিন্তু এর স্পষ্ট সীমা আছে।
মূল সীমা:
- প্রতিটি নতুন কলামের জন্য স্পষ্ট নীতি প্রয়োজন
- SYSADMIN এবং ACCOUNTADMIN রোল মাস্কিং বাইপাস করতে পারে
- Import job প্রায়ই উচ্চ সুবিধা সহ চলে যা মাস্কিং এড়িয়ে যায়
- নীতি সেট করার আগে লোড করা পুরানো ডেটা plain আকারে সংরক্ষিত
কোয়েরি সময়ে মাস্কিং যথেষ্ট নয়। ডেটা সংরক্ষণের আগে পরিষ্কার হতে হবে।
সম্মতি ডকুমেন্টেশন
GDPR-এর জবাবদিহিতা নিয়ম প্রমাণ চায়। ইঞ্জিনিয়ারিং টিমের জন্য এর মানে লিখিত রেকর্ড।
Processing Activities রেকর্ড (ROPA): নথিভুক্ত করুন যে গ্রাহক তথ্য analytics ওয়্যারহাউসে লোড হওয়ার আগে অ্যানোনিমাইজ করা হয়।
প্রযুক্তিগত সুরক্ষার নোট: আপনার পাইপলাইন কোন সত্তার ধরন লক্ষ্য করে তা লিখুন। ব্যবহৃত অ্যানোনিমাইজেশন পদ্ধতি নোট করুন।
ডেটা lineage: Secoda বা dbt-র built-in lineage দেখাতে পারে যে সোর্স টেবিল analytics মডেলে পৌঁছানোর আগে একটি অ্যানোনিমাইজেশন ধাপের মধ্য দিয়ে যায়।
বাস্তবায়নের ধাপ
ধাপ 1: আপনার raw স্তর অডিট করুন
কোন টেবিলে ব্যক্তিগত তথ্য আছে তা খুঁজুন।
ধাপ 2: অ্যানোনিমাইজেশন সুযোগ সেট করুন
প্রতিটি সোর্স টেবিলের জন্য, কোন কলামে PII আছে তা ঠিক করুন। সাপোর্ট টিকিট বডি: অ্যানোনিমাইজ করুন। Order ID: join কী অক্ষুণ্ণ রাখতে pseudonymize করুন।
ধাপ 3: একটি বাস্তবায়ন পথ বেছে নিন
ব্যাচ export সহ ছোট টিম: লোডের আগে ব্যাচ ফাইল প্রক্রিয়াকরণ ব্যবহার করুন। ইঞ্জিনিয়ারিং টিম উপলব্ধ: Airflow বা Prefect-এ API ইন্টিগ্রেশন তৈরি করুন।
ধাপ 4: পরীক্ষা করুন এবং যাচাই করুন
লাইভ যাওয়ার আগে একটি নমুনায় অ্যানোনিমাইজেশন চালান। dbt মডেলগুলি এখনও কাজ করে কিনা পরীক্ষা করুন।
ধাপ 5: পুরানো raw টেবিল পরিচালনা করুন
অ্যানোনিমাইজেশন আগে লোড করা কন্টেন্টের পূর্ববর্তী প্রক্রিয়াকরণ দরকার। Export, অ্যানোনিমাইজ, রিলোড।
উপসংহার
ট্যাগ-ভিত্তিক মাস্কিং দেখায় PII কোথায় থাকে। এটি schema অ্যাক্সেস সহ ব্যবহারকারীদের এটি পড়া থেকে থামায় না। প্রকৃত GDPR সম্মতির জন্য, ওয়্যারহাউসে পৌঁছানোর আগে PII পরিষ্কার হতে হবে।