Apache Airflow / المتقدم: المعالجة التاريخية والنشر وأدلة التعافي / الدرس 15
الأسرار والمصادقة والوصول
مراجعة الهويات وحدود الثقة للمؤلفين والمشغلين والمهام دون كشف اعتماد.
في هذه الصفحة
أهداف الدرس
- تمييز صلاحيات الواجهة من وصول المهمة للأنظمة الخارجية.
- شرح لماذا يمثل تأليف DAG قدرة موثوقة لتنفيذ الشفرة.
يحتاج المستخدم والمهمة مراجعتين للوصول
قد يستخدم شخص يعرض تشغيلة Airflow وعامل يصل إلى مستودع خارجي هويتين مختلفتين تماماً. تثبت مصادقة UI/API من يتعامل مع أدوات التنسيق، بينما تفوض اعتمادات وقت التشغيل العمل الخارجي. لا تعني قدرة مشاهد على قراءة السجلات استحقاقه رؤية كلمات مرور الاتصالات، ولا تبرر صلاحية مهمة للكتابة في قاعدة بيانات منحها إدارة العنقود. اربط كل عملية مطلوبة بهويتها وموردها الفعليين. ووضح مسؤوليات مدير النشر ومؤلف DAG ومستخدم العمليات. يدعم Airflow مديري مصادقة قابلين للاستبدال؛ لذلك تتبع تفاصيل الأدوار المدير والسياسة المختارين، لا جدول أسماء أدوار عام واحد.
ملف DAG شفرة قابلة للتنفيذ
يستطيع مؤلف DAG تقديم Python ينفذ أثناء المعالجة وتشغيل المهام، وتتحدد آثاره بعزل النشر واعتماداته. لا يعزل المخطط المرئي الجميل ولا التعريف المتسلسل شفرة غير موثوقة. وقد يشترك العمال وtriggerer في موارد؛ لذا لا يشكل الفصل المرئي بين المهام حاجز مستأجرين قوياً بذاته. راجع تقديم الشفرة وسلطة تثبيت الحزم وصلاحيات التنفيذ عبر المسار الموثوق للنشر. تقيد Task SDK العامة في Airflow 3 تفاعل المهمة المباشر مع تفاصيل قاعدة التنسيق، لكن حد الواجهة لا يحول شفرة المستخدم الاعتباطية إلى إضافة آمنة غير موثوقة، ولا يلغي الحاجة إلى عزل البنية.
فصل جلب السر عن كشفه
تسمح الاتصالات وخلفيات الأسرار المدعومة للشفرة بالإشارة إلى معرف مضبوط بدلاً من حمل بايتات السر في المصدر. وما زال الجلب يحتاج الخلفية وعقد التسمية وهوية التشغيل الصحيحة. لا يثبت نجاح البحث سماح الهدف بالعملية أو تطابق شهادته. تجنب طباعة السياق أو إضافات الاتصال أو قاموس البيئة كاملاً. يقلل الإخفاء الكشف العارض، لكنه لا ينفذ الصلاحيات ولا يضمن إخفاء أي تحويل اعتباطي للسر. عند التدوير، تحقق من المهام الجديدة والأعمال طويلة التشغيل وفق سياسة التداخل المعتمدة، دون نشر اعتماد حقيقي في الأمثلة.
فحص مصفوفة عمليات متوقعة صغيرة
تسمح المجموعة المحلية لمشاهد اصطناعي بعرض التشغيلات، ولمهمة تقرير اصطناعية بقراءة عائلة مدخلات واحدة. وترفض عمداً كتابة المشاهد وإدارة المنصة من المهمة. هذا فحص عضوية مجموعات فقط، لا مقيّم لمدير مصادقة Airflow أو IAM سحابي أو منح قاعدة بيانات. غرضه إدراج الحالات السلبية في المراجعة. يشمل التفويض الفعلي نطاق المورد ووراثة الصلاحيات وربط الهوية أيضاً. إذا جعل إصلاح عملية مرفوضة تنجح، فافحصه مقابل الممنوعات المقصودة كي لا يوسع حادث اتصال دور التطبيق بصمت.
allowed = {('viewer-lab', 'view-runs'), ('task-report-lab', 'read-manifest')}
assert ('viewer-lab', 'view-runs') in allowed
assert ('viewer-lab', 'write-report') not in allowed
assert ('task-report-lab', 'administer-platform') not in allowed
print('expected grants and denials hold')
expected grants and denials hold
يفحص قيماً معلنة فقط؛ ولا يشغل مدير Airflow أو تفويضاً خارجياً.
تسجيل عقد وصول دون التعامل مع الأسرار
يسجل JSON مرجع السر والعملية المقصودة دون أسماء دخول أو رموز أو نقاط اتصال. إنه أثر مراجعة، لا إعداد قابل للتنفيذ ولا أمر لإنشاء اتصال. أبق توفير السر الفعلي في نظام النشر المعتمد، وحدد أفق الاحتفاظ بأدلة التدقيق. تحتاج المصادقة والتفويض وثقة النقل وثقة تنفيذ الشفرة تحققاً منفصلاً. لا يقرأ الدرس مخزن اعتمادات ولا يستدعي API ولا يعدل دوراً ولا يجري مسحاً. يفحص نموذج الصلاحيات المنفذ قيماً اصطناعية معطاة فقط، ولا يدعي إنفاذ وصول حقيقي.
{"task_principal":"task-report-lab","connection_reference":"lab_input_reader","operation":"read-manifest","resource_scope":"declared-business-interval","secret_material_in_source":false}
المرجع تسمية منطقية لا اتصال موجود أو صلاحية متحققة.
الأخطاء الشائعة وإصلاحها
تلقي مستخدم عرض فقط تفاصيل حساسة من السجلات.
- لماذا يحدث؟
- تجاوز التشخيص حد الكشف المقصود.
- كيف تصلحه؟
- أزل الطباعة واتبع مسار الحادث والتدوير.
- كيف تتجنب تكراره؟
- راجع محتوى السجل مستقلاً عن أسماء الصلاحيات.
اعتبار تأليف DAG تحرير مستند غير مؤثر.
- لماذا يحدث؟
- إهمال قابلية تعريفات Python للتنفيذ.
- كيف تصلحه؟
- طبق مراجعة موثوقة وعزلاً مناسباً.
- كيف تتجنب تكراره؟
- وثق قدرات المؤلف وحدود البيئة المشتركة.
نجاح جلب السر ورفض عملية الهدف.
- لماذا يحدث؟
- الخلط بين الجلب والتفويض الخارجي.
- كيف تصلحه؟
- افحص هوية التشغيل والعملية المحدودة.
- كيف تتجنب تكراره؟
- اختبر السماح والمنع المقصودين منفصلين.
اختبر فهمك
1. هل يثبت إخفاء كلمة مرور في الواجهة عجز مؤلف DAG عن استخدامها؟
اعرض الحل المشروح
لا. إخفاء العرض وقدرات التنفيذ ضابطان مختلفان. يستطيع المؤلف الموثوق تقديم شفرة تعمل بالصلاحيات المتاحة لبيئة المهمة. راجع نطاق الاعتماد ومسار تقديم الشفرة وعزل التشغيل معاً، بدلاً من استنتاج حد ثقة قوي من نص مخفي في شاشة واحدة.
2. لماذا تتضمن مراجعة الصلاحيات عمليات يجب أن تظل مرفوضة؟
اعرض الحل المشروح
يثبت الفحص الإيجابي تمثيل فعل مسموح واحد فقط. تساعد الحالات السلبية على كشف توسع الدور عرضاً أثناء إصلاح أو تغيير إعداد. يظل الإنفاذ الحقيقي بحاجة إلى تحقق نشر مصرح به بالمدير والنظام الخارجي المختارين، لكن عقد المراجعة يجب أن يحدد ما يلزم نجاحه وما يلزم بقاؤه ممنوعاً.
أهم ما تعلمته
- وصول المستخدم واعتماد المهمة وثقة المؤلف حدود مختلفة.
- يقلل الإخفاء الكشف ولا يستبدل التفويض والعزل.