GitHub Actions / الهوية والتنسيق والحوكمة / الدرس 14
هوية اعتماد الإجراء وإفادات النواتج
راجع ما يثبته التثبيت وتحقق من ادعاء البناء عند المستهلك.
في هذه الصفحة
أهداف الدرس
- شرح الوسوم المتغيرة والتزامات مراجعة ومسؤولية التحديث.
- تمييز المنشأ الموثق وتجزئة البايتات وادعاء السلامة.
يضيف كل uses ثقة تنفيذية
يمكن لإجراء أو سير مشترك تنفيذ أوامر وقراءة ملفات والوصول إلى الرمز المسموح والتأثير في المخرجات. لا يزيل الاسم الشائع أو شارة المتجر هذه السلطة. ينبغي لـ Parcel مراجعة التنفيذ والصيانة والاعتمادات المتداخلة ومتطلبات التشغيل والأذونات قبل التبني. يحدد SHA كامل مراجعة مستودع أدق من وسم أو فرع متغير. لكنه لا يثبت سلامة تلك المراجعة أو قابلية إعادة بنائها أو خلو اعتمادها من الاختراق. الهوية أساس يجعل المراجعة قابلة للتكرار، وليست نتيجة المراجعة الأمنية نفسها.
يحتاج التثبيت عملية تغيير مستمرة
يبقى الاعتماد المثبت على المحتوى القديم إلى أن يُحدث عمداً. راجع تغير السلوك والأذونات وتوافق التشغيل والمدخلات التنفيذية المتداخلة. تساعد اقتراحات التحديث الآلي في الاكتشاف لكنها ما زالت تحتاج عقد المراجعة والاختبار. لا تختلق أربعين محرفاً لتبدو الأمثلة آمنة. تستخدم الدورة سجلات مفاهيمية ومراجع مستودعات رسمية بدلاً من تثبيتات مزيفة. في الواقع احصل على الالتزام الحقيقي من المستودع المقصود وراجعه واحفظ سبب قبوله. يمنع ذلك نقل الثقة إلى نص يشبه الهوية دون أن يشير إلى محتوى معروف.
تربط الإفادة الموقعة سياق البناء
يمكن لإفادات النواتج تقديم منشأ موقع تشفيرياً مرتبط بالناتج. يتحقق المستهلك من نظام التوقيع أو الهوية ويربط موضوع الادعاء بالبايتات المستلمة ويقيّم المستودع والسير والمراجعة والباني المتوقعين. تختلف الإتاحة وآلية التحقق بحسب سياق المستودع والأدوات. تحدد التجزئة المتطابقة البايتات دون إثبات أصلها. وقد تصف إفادة صحيحة بناءً يخالف سياسة المستهلك بصدق، ولا يثبت توقيعها غياب الضعف. ينبغي أن تبقى أسئلة الهوية والمنشأ والقبول والأمن منفصلة حتى لا يصبح توقيع واحد موافقة شاملة.
صرّح بتوقعات المستهلك
يمثل JSON التالي توقعاً افتراضياً، وليس إفادة GitHub أو حزمة Sigstore أو محمول SLSA. يُظهر علاقة المصدر والسير المطلوبة دون حقول تشفير مختلقة. استخدم أدوات تحقق مدعومة وخيارات سياسة موثقة في نظام فعلي. افصل المنشأ عن جرد الاعتماد: يصف SBOM المكونات ضمن نطاقه، ويصف المنشأ علاقات البناء. يفيد الاثنان لكن لا يجوز قبول أحدهما لناتج آخر لمجرد تشابه الاسم. لا يستطيع السجل التوضيحي إنشاء أصل موثوق، بل يساعد على كتابة السؤال الذي سيجيب عنه المدقق الحقيقي.
{"repository":"parcel-lab/source","workflow":"reviewed-build-definition","candidate":"parcel-lab-r3","required_origin":"approved-build-path"}
الأسماء مدخلات تعليمية معلنة. لا يتحقق السجل من ناتج ولا يدعي مطابقة صيغة. لا يُتصل بتوقيع أو سجل أو API مستودع أو مدقق.
ارفض منشأ خاطئاً يبدو معقولاً
يفترض النموذج الكامل ادعاءات موثقة ويقارن حقلين متوقعين. يرفض سيراً آخر رغم تطابق المستودع. يتطلب التحقق الحقيقي موضوع الناتج والمعلمات المؤثرة وجذور الثقة وصلاحية الشهادة أو التوقيع وشروط السياسة أيضاً. يحذف البرنامج هذه الآليات عمداً ولا يعاد استخدامه كمدقق. يوضح فقط بقاء توقعات المستهلك ضرورية بعد المصادقة التشفيرية. المستودع المألوف لا يفوض كل مسار بناء داخله، وقد يحتاج انتقال السير إلى تعريف آخر مراجعة سياسة حتى لو بقي المصدر نفسه.
expected = {"repository": "parcel-lab/source", "workflow": "reviewed-build"}
def policy(claim):
return all(claim.get(k) == v for k, v in expected.items())
print(policy(dict(expected)))
print(policy(dict(expected, workflow="unreviewed-build")))
True
False
شرط قاموس على بيانات افتراضية موثقة مسبقاً. لا يحلل ولا يوقع ولا ينزّل ولا يتحقق من إفادة فعلية.
الأخطاء الشائعة وإصلاحها
يوصف التثبيت الكامل كدليل أمان.
- لماذا يحدث؟
- اختلطت الهوية الدقيقة بالمراجعة.
- كيف تصلحه؟
- راجع التنفيذ والسلطة والاعتماد المتداخل.
- كيف تتجنب تكراره؟
- احفظ المبرر وعملية التحديث.
تُقبل إفادة صحيحة لسير آخر.
- لماذا يحدث؟
- تفحص السياسة التوقيع أو الاسم فقط.
- كيف تصلحه؟
- اشترط الموضوع ومسار البناء المقصود.
- كيف تتجنب تكراره؟
- اختبر رفض الموثق غير المخول.
يضم الدرس تثبيتاً أو تجزئة مختلقين.
- لماذا يحدث؟
- حل مظهر الأمان محل دليل هوية.
- كيف تصلحه؟
- استخدم الحقيقي المتحقق في التشغيل والافتراضي الصريح في التعليم.
- كيف تتجنب تكراره؟
- لا تقدم نصوص تشفير مبتكرة كبيانات موثوقة.
اختبر فهمك
1. لم يتغير تثبيت سنتين. هل يكفي ذلك لصيانة صحية؟
اعرض الحل المشروح
لا. تثبت الهوية وتتراكم نقاط ضعف وتغيرات تشغيل وصيانة. راجع التحديث بضبط مع أدلة توافق. تدعم الثباتية التغيير الواعي ولا تبرر الإهمال الدائم.
2. طابقت الحزمة التجزئة وسمت الإفادة سيراً غير مقبول. ما القرار؟
اعرض الحل المشروح
نجحت هوية البايتات وفشلت سياسة المنشأ. أوقف التبني وحقق الاختيار أو تغير مسار البناء. لا تتجاوز التجزئة توقع منشأ موثقاً فاشلاً.
أهم ما تعلمته
- يجعل التثبيت المراجعة قابلة للتكرار ولا يحل محلها.
- وثق المنشأ واربط البايتات ثم قيّم السياسة.