العودة إلى المدونةتقني

بناء خط بيانات آمن وفقًا لـ GDPR: إخفاء الهوية...

علامات أعمدة dbt ليست متوافقة مع GDPR. تصل بيانات العملاء الخام إلى مستودع Snowflake الخاص بك غير مخفية قبل تطبيق السياسات المعتمدة على العلامات.

April 20, 20268 دقيقة قراءة
data pipelinedbtSnowflakedata warehouseELT anonymizationGDPR engineering

بناء خط بيانات آمن وفقًا لـ GDPR: إخفاء الهوية للبيانات الشخصية قبل وصولها إلى مستودع البيانات الخاص بك

لقد قمت بوسم أعمدة البيانات الشخصية الخاصة بك في dbt. تم تكوين سياسة إخفاء البيانات الديناميكية الخاصة بك في Snowflake. تشعر أنك متوافق مع GDPR.

ومع ذلك، لا تزال بياناتك الخام تصل إلى المستودع غير مخفية. يتم تطبيق سياسة الإخفاء في وقت الاستعلام - ولكن البيانات الخام غير المخفية موجودة في طبقتك الخام، متاحة لأي شخص لديه وصول إلى المخطط الخام. تم تشغيل نماذج dbt الخاصة بك قبل أن تكون سياسات الإخفاء في مكانها، ولم يتم إخفاء البيانات الخام التاريخية أبدًا.

الفجوة بين "لدينا سياسات إخفاء" و"بياناتنا محمية فعليًا" هي المكان الذي تحدث فيه انتهاكات GDPR.

كيف تخلق خطوط ELT تعرض البيانات الشخصية

نمط استخراج-تحميل-تحويل (ELT) - السائد في هندسة البيانات الحديثة - يقوم بتحميل البيانات الخام إلى المستودع أولاً، ثم تحويلها:

  1. استخراج: يتم استخراج بيانات النظام المصدر (Salesforce CRM، مدفوعات Stripe، دعم Intercom) مع جميع الحقول
  2. تحميل: يتم تحميل البيانات الخام إلى مخطط المستودع الخام - Snowflake، BigQuery، Redshift - بما في ذلك جميع حقول البيانات الشخصية
  3. تحويل: يتم تشغيل نماذج dbt لتنظيف البيانات، ودمجها، وتجميعها للاستخدام التحليلي

تحتوي الطبقة الخام على بيانات شخصية كاملة غير مخفية: أسماء العملاء، عناوين البريد الإلكتروني، أرقام الهواتف، معلومات الدفع، محتوى تذاكر الدعم. يمكن لأي شخص لديه وصول إلى المخطط الخام - وفي العديد من المؤسسات، هذه مجموعة واسعة من مهندسي البيانات والمحللين - استعلامها مباشرة.

يساعد الإخفاء الديناميكي القائم على العلامات في Snowflake في وقت الاستعلام للنماذج السفلية المكونة بشكل صحيح. لكنه لا يخفي البيانات الخام بأثر رجعي. لا يحمي من استعلامات المخطط الخام المباشرة. يتطلب أن تكون كل نموذج سلفي ولوحة معلومات موسومة بشكل صحيح - عبء صيانة ينمو مع تعقيد المخطط.

نهج إخفاء الهوية على مستوى الخط

إخفاء الهوية للبيانات الشخصية على مستوى الخط - قبل أن تصل البيانات إلى المستودع - يلغي تعرض الطبقة الخام:

نهج ETL (إخفاء الهوية قبل التحميل):

  1. استخراج البيانات من الأنظمة المصدر
  2. توجيه البيانات عبر خطوة الإخفاء
  3. تحميل البيانات المخفية الهوية إلى المستودع

لم يتلق المستودع أبدًا بيانات شخصية خام. يحتوي المخطط الخام على بيانات مخفية الهوية. تعمل النماذج السفلية، ولوحات المعلومات، والاستعلامات المباشرة جميعها مع بيانات مخفية الهوية.

يتطلب هذا إما:

  • إخفاء الهوية مدمج في خطوة الاستخراج (على مستوى API)
  • إخفاء الهوية كمرحلة في الخط بين الاستخراج والتحميل

خيار التنفيذ - تكامل API: بالنسبة للأنظمة التي تحتوي على webhooks خارجية أو تصديرات متدفقة، قم بتوجيه البيانات عبر API anonym.legal قبل وصولها إلى المستودع. تذاكر دعم العملاء التي تغادر Intercom → API الإخفاء → المستودع. سجلات مدفوعات Stripe → API الإخفاء → المستودع.

POST /api/anonymize
{
  "text": "العميل جون سميث (john@example.com) أبلغ...",
  "entities": ["PERSON", "EMAIL_ADDRESS", "PHONE_NUMBER"],
  "method": "replace"
}

خيار التنفيذ - المعالجة المسبقة الدفعة: بالنسبة للبيانات المحملة دفعة واحدة (تصديرات يومية/أسبوعية من الأنظمة المصدر)، قم بتشغيل ملفات CSV/JSON المصدرة عبر المعالجة الدفعة قبل تحميلها إلى المستودع.

هيكل DAG في Airflow:

extract_task >> anonymize_batch_task >> load_to_warehouse_task

تقوم anonymize_batch_task بتحميل الملفات المستخرجة إلى المعالجة الدفعة واسترجاع النسخ المخفية الهوية. تقوم مهمة التحميل بتحميل الملفات المخفية الهوية.

علامات أعمدة dbt: ماذا تفعل وماذا لا تفعل

dbt يدعم وسم أعمدة البيانات الشخصية:

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

هذا يمكّن:

  • توثيق مواقع البيانات الشخصية
  • تفعيل سياسات الإخفاء السفلية (يتطلب تكوين على مستوى المستودع)
  • تتبع النسب (يمكن لأدوات مثل secoda والأدوات المماثلة تتبع الأعمدة الموصوفة عبر النماذج السفلية)

هذا لا يمكّن:

  • إخفاء البيانات الخام في المخطط الخام
  • الحماية من الاستعلامات المباشرة للجداول الخام
  • الإخفاء التلقائي في وقت التحميل
  • الإخفاء بأثر رجعي للبيانات التاريخية

tags أعمدة dbt هي أداة توثيق وإدارة. إنها قيمة لفهم مكان وجود البيانات الشخصية في نموذج بياناتك. إنها لا تنفذ "التدابير التقنية المناسبة" التي يتطلبها المادة 32 من GDPR لحماية البيانات.

فجوة إخفاء البيانات الديناميكية في Snowflake

تطبق ميزة إخفاء البيانات الديناميكية في Snowflake سياسات الإخفاء على الأعمدة، مما يخفي البيانات عن المستخدمين الذين لا يمتلكون حق الوصول لإلغاء الإخفاء في وقت الاستعلام. هذه تحكم قوية لحالات الاستخدام الإنتاجية.

القيود:

  • يتم تطبيق الإخفاء على الأعمدة التي تم تكوينها عليها - أي عمود يتم إضافته بعد التكوين الأولي يتطلب تطبيق سياسة صريحة
  • يمكن أن يؤدي تطور المخطط (أعمدة جديدة، أعمدة معاد تسميتها) إلى إنشاء أعمدة بيانات شخصية غير مخفية حتى يتم تحديث السياسات
  • عادةً ما يمكن للمستخدمين الذين لديهم دور SYSADMIN أو ACCOUNTADMIN تجاوز الإخفاء
  • غالبًا ما تعمل عمليات استيراد البيانات الخام مع صلاحيات مرتفعة تتجاوز الإخفاء
  • يتم تخزين البيانات التاريخية المحملة قبل تنفيذ السياسات غير مخفية (تطبق السياسات في وقت القراءة، وليس وقت التخزين)

للحماية الحقيقية، فإن الإخفاء في وقت الاستعلام غير كافٍ. يجب إخفاء البيانات قبل التخزين.

توثيق الامتثال لخطوط التحليلات

يتطلب مبدأ المساءلة في GDPR إثبات الامتثال، وليس مجرد الادعاء به. بالنسبة لفرق هندسة البيانات، يعني هذا:

سجلات أنشطة المعالجة (ROPA): وثق أن بيانات العملاء مخفية الهوية قبل تحميلها إلى مستودع التحليلات. تعتبر خطوة الإخفاء في خطك نشاط معالجة بموجب GDPR.

توثيق الضمانات التقنية: تكوين الإخفاء (أي أنواع الكيانات، أي طريقة) المستخدمة في خطك. توفر بيانات التعريف الخاصة بالمعالجة من عمليات الدفعة هذا تلقائيًا.

تتبع البيانات: يمكن أن تظهر أدوات مثل Secoda أو تتبع البيانات المدمج في dbt أن بيانات النظام المصدر تتدفق عبر خطوة الإخفاء قبل الوصول إلى نماذج التحليلات. هذا التتبع هو مسار تدقيق الامتثال الخاص بك.

توثيق المعالج الفرعي: تعتبر خدمة الإخفاء معالجًا فرعيًا. يجب توثيق اتفاقية معالجة البيانات الخاصة بهم وسياسة الخصوصية في سجل الموردين الخاص بك.

دليل التنفيذ العملي

بالنسبة لخط قائم على dbt مع Snowflake:

الخطوة 1: تدقيق تعرض الطبقة الخام حدد الجداول في المخطط الخام الخاص بك التي تحتوي على بيانات شخصية. استعلام عن علامات أعمدة dbt الخاصة بك أو كتالوج البيانات الخاص بك للجداول الموصوفة بالبيانات الشخصية.

الخطوة 2: تحديد نطاق الإخفاء بالنسبة لكل جدول خام: أي الأعمدة تحتوي على بيانات شخصية؟ أيها يجب أن يتم إخفاء هويتها مقابل الحفاظ عليها؟ (محتوى تذكرة دعم العملاء: إخفاء الهوية. معرف الطلب: إخفاء الهوية مع استبدال متسق لحل الكيانات. الطابع الزمني: الحفاظ عليه لتحليل السلاسل الزمنية.)

الخطوة 3: اختيار نهج التنفيذ فريق صغير، بيانات محملة دفعة: معالجة الملفات دفعة واحدة قبل التحميل موارد هندسة البيانات: تكامل API في خط Airflow/Prefect

الخطوة 4: اختبار والتحقق قم بتشغيل الإخفاء على عينة من البيانات الخام قبل التنفيذ في الإنتاج. تحقق من أن نماذج dbt السفلية لا تزال تعمل بشكل صحيح مع المدخلات المخفية الهوية. قد تستخدم بعض النماذج عناوين البريد الإلكتروني للانضمام - تحتاج هذه إلى استخدام قيم استبدال متسقة (الإخفاء يحافظ على مفاتيح الانضمام، والإخفاء يكسرها).

الخطوة 5: التعامل مع البيانات التاريخية تتطلب البيانات الخام الموجودة (المحمولة قبل تنفيذ الإخفاء) معالجة بأثر رجعي. قم بالتصدير، الإخفاء، وإعادة التحميل. هذه عملية لمرة واحدة لكل جدول تاريخي.

الخاتمة

الإخفاء القائم على العلامات هو أداة إدارة، وليس تحكمًا أمنيًا. إنه يخبرك بمكان وجود بياناتك الشخصية؛ لا يمنع تعرض بياناتك الشخصية للمستخدمين الذين لديهم وصول إلى المخطط الخام. لتحقيق الامتثال الحقيقي لـ GDPR في خطوط البيانات، يجب إخفاء الهوية للبيانات الشخصية قبل أن تصل إلى المستودع - مما يجعل الطبقة الخام آمنة مثل الطبقة الإنتاجية.

هذه تنفيذ أكثر تعقيدًا من وسم الأعمدة، لكنها ما يتطلبه "التدابير التقنية المناسبة" فعليًا.

المصادر:

هل أنت مستعد لحماية بياناتك؟

ابدأ بإخفاء المعلومات الشخصية مع أكثر من 285 نوع كيان عبر 48 لغة.