إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في هذه المقالة، ستتعلم كيفية تثبيت التحديث الجزئي المستمر وتمكينه وتكوينه. سيؤدي التصحيح المستمر عند تمكين سجل الحاوية تلقائيا إلى اكتشاف ومعالجة الثغرات الأمنية على مستوى نظام التشغيل (نظام التشغيل) لصور الحاوية.
المتطلبات الأساسية
- يمكنك استخدام Azure Cloud Shell أو تثبيت محلي ل Azure CLI مع حد أدنى من الإصدار 2.15.0 أو أحدث.
- لديك مجموعة موارد موجودة مع Azure Container Registry (ACR).
- لديك سجل حاويات Azure مع تمكين مهام ACR (مهام ACR غير مدعومة في المستوى المجاني من ACR).
قم بتشغيل الأمر التالي لتثبيت ملحق CLI:
az extension add -n acrcssc
تمكين سير عمل التحديثات المستمر
سجل الدخول إلى Azure CLI باستخدام az login.
az loginتسجيل الدخول إلى ACR.
az acr login -n <myRegistry>شغل الأمر التالي لإنشاء ملف باسم
continuouspatching.json.cat <<EOF > continuouspatching.json { "version": "v1", "tag-convention" : "<incremental|floating>", "repositories": [{ "repository": "<Repository Name>", "tags": ["<comma-separated-tags>"], "enabled": <true|false> }] } EOFيخزن المخطط مستودعات وعلامات معينة بتنسيق صفيف. يتم تعريف كل متغير هنا:
versionيسمح لفريق ACR بتعقب إصدار المخطط الذي تعمل عليه. لا تغير هذا المتغير ما لم يتم إرشادك إلى.tag-conventionهو حقل اختياري. القيم المسموح بها هي "تزايدي" أو "عائم" - راجع المفاهيم الرئيسية للتصحيح المستمر لمزيد من المعلومات.repositoriesهي مصفوفة تتكون من معلومات مستودع وعلامات مفصلة بالتفصيل:-
repositoryيشير إلى اسم المستودع -
tagsهو صفيف من العلامات مفصولة بفواصل. يمكن استخدام حرف*البدل للدلالة على جميع العلامات داخل هذا المستودع. -
enabledهي قيمة منطقية صحيحة أو خاطئة تحدد ما إذا كان المستودع المحدد ممكنا أم لا.
-
المثال أدناه يوضح إعدادا لعميل يريد تصحيح جميع العلامات (باستخدام الرمز *) داخل المستودع
python، وتحديث علامات وjammy-20240111بشكل محددjammy-20240125في المستودعubuntu.{ "version": "v1", "tag-convention" : "incremental", "repositories": [{ "repository": "python", "tags": ["*"], "enabled": true }, { "repository": "ubuntu", "tags": ["jammy-20240111", "jammy-20240125"], "enabled": true, }] }بعد إنشاء ملف التكوين الخاص بك، قم بتنفيذ تجربة جذرية للتحقق من اختيار التشويهات المقصودة وفقا لمعايير JSON. يتطلب التشغيل الجاف معلمة تسمى
schedule، والتي تحدد عدد مرات تشغيل دورة التصحيح المستمرة. يتم قياس علامة الجدول بالأيام، مع الحد الأدنى لقيمة يوم واحد، وقيمة قصوى 30 يوما. على سبيل المثال، إذا كنت تريد تصحيح صورة كل يوم، يمكنك تحديد الجدول الزمني ك1d، أو يوم واحد. إذا كنت تريد تصحيحا أسبوعيا (مرة واحدة في الأسبوع)، يمكنك ملء الجدول الزمني ك7d، أو 7 أيام.az acr supply-chain workflow create -r myRegistry -g myResourceGroup -t continuouspatchv1 --config ./continuouspatching.json --schedule 1d --dry-runإخراج
--dry-runالعلامة كافة البيانات الاصطناعية المحددة بواسطة تكوين ملف JSON. تحقق من اختيار القطع الأثرية الصحيحة. مع تكوين الأوبونتو النموذجي، يجب عرض النتائج التالية كمخرجات:Ubuntu: jammy-20240111 Ubuntu: jammy-20240125بعد التأكد من نتائج التجربة الجافة، شغل
createالأمر مرة أخرى بدون العلم--dry-runلإنشاء سير عمل التحديثات المستمرة.إشعار
--scheduleتتبع المعلمة مضاعف يوم ثابت بدءا من اليوم 1 من الشهر. يعني ذلك:- إذا قمت بتحديد
--schedule 7dالأمر وتشغيله في الثالث، فسيكون التشغيل المجدول التالي في 7th - لأن 7 هو المضاعف الأول من 7 (أيام) بعد الثالث، ويحسب من اليوم الأول من الشهر. - إذا كان
--scheduleهو 3d واليوم هو 7 ، ثم القادم المقرر تشغيل الأراضي على 9 -- منذ 9 هو المضاعف التالي من 3 الذي يلي 7. - إذا أضفت العلامة
--run-immediately، يمكنك تشغيل تصحيح فوري. سيظل التشغيل المجدول اللاحق محاذاته إلى أقرب مضاعف يوم من أول الشهر، استنادا إلى القيمة الخاصة بك--schedule. - يتم إعادة تعيين عداد الجدول كل شهر. بغض النظر عن الجدول الزمني المعين، سيتم تشغيل سير العمل في الأول من كل شهر، ثم اتبع قيمة الجدول الزمني المحددة لبقية الشهر. إذا كان التصحيح الخاص بي يعمل في 28 يناير، وجدولي الزمني هو 7d، سيتم تشغيل التصحيح التالي في فبراير الأول، ثم الثامن، ويستمر بعد 7 أيام.
az acr supply-chain workflow create -r myRegistry -g myResourceGroup -t continuouspatchv1 --config ./continuouspatching.json --schedule 1d --run-immediatelyعند نجاح الأمر (سواء أدرجت
--run-immediatelyأم لا)، ترى رسالة نجاح تؤكد أن مهام سير العمل الخاصة بك تم وضعها في قائمة الانتظار. كما ترى معامل إخراج يشير إلى موعد جدولة الجولة التالية من سير عملك، لذا يمكنك تتبع موعد حدوث التحديث مرة أخرى بدقة.- إذا قمت بتحديد
استخدام مدخل Microsoft Azure لعرض مهام سير العمل
بمجرد نجاح سير العمل، انتقل إلى مدخل Microsoft Azure لعرض المهام قيد التشغيل. في قائمة الخدمة، تحت الخدمات، اختر المستودعات. يجب أن ترى مستودعا جديدا باسم
csscpolicies/patchpolicy. يستضيف هذا المستودع أداة تكوين JSON التي تتم الإشارة إليها باستمرار للتصحيح المستمر.بعد ذلك، تحت قسم الخدمات، اختر المهام. يجب أن ترى ثلاث مهام جديدة:
-
cssc-trigger-workflow- تقوم هذه المهمة بمسح ملف التكوين وتستدعي مهمة المسح على كل صورة على حدة. -
cssc-scan-image- تقوم هذه المهمة بمسح الصورة بحثا عن ثغرات في نظام التشغيل. تؤدي هذه المهمة إلى تشغيل مهمة التصحيح فقط إذا تم العثور على ثغرات أمنية في نظام التشغيل. -
cssc-patch-image- هذه المهمة تقوم بتصحيح الصورة.
تعمل هذه المهام بالتزامن لتنفيذ سير عمل التصحيح المستمر.
-
لرؤية تنفيذ المهام المحددة، اختر الجولات. هنا يمكنك عرض معلومات الحالة حول ما إذا كانت المهمة قد نجحت أو فشلت، بالإضافة إلى عرض سجل تصحيح الأخطاء.
استخدام CLI لعرض مهام سير العمل
يمكنك أيضا تشغيل أمر عرض CLI التالي للاطلاع على مزيد من التفاصيل حول كل مهمة وسير العمل العام. يقوم الأمر بإخراج الجدول الزمني وتاريخ الإنشاء وبيانات النظام مثل آخر تاريخ تعديل.
على سبيل المثال:
az acr supply-chain workflow show -r myRegistry -g myResourceGroup -t continuouspatchv1
لرؤية جميع الأعلام المطلوبة والاختيارية، استخدم أمر المساعدة:
az acr supply-chain workflow show --help
تحديث سير عمل التحديثات المستمر
لإجراء تعديلات على سير عمل التحديثات المستمرة، استخدم أمر التحديث. يمكنك تحديث جدولك أو مخطط تكوين JSON باستخدام أمر تحديث CLI مباشرة. على سبيل المثال:
az acr supply-chain workflow update -r myRegistry -g myResourceGroup -t continuouspatchv1 --config ./continuouspatching.json --schedule 1d
لتحديث الجدول الزمني، قم بتشغيل الأمر السابق مع إدخال جديد للجدول الزمني. لتحديث تكوين JSON الخاص بك، نوصي بإجراء تغييرات على الملف، وتشغيل التشغيل الجاف، ثم تشغيل أمر التحديث.
حذف سير عمل التحديثات المستمر
لحذف سير عمل التحديث المستمر، قم بتشغيل أمر CLI التالي:
az acr supply-chain workflow delete -r myregistry -g myresourcegroup -t continuouspatchv1
بمجرد حذف سير العمل بنجاح، سيتم حذف المستودع "csscpolicies/patchpolicy" تلقائيا. سيتم حذف المهام الثلاث التي تقوم بتشغيل سير العمل الخاص بك أيضا، بالإضافة إلى أي عمليات تشغيل مدرجة في قائمة الانتظار حاليا.
استكشاف أخطاء التحديث المستمر
راجع هذه النصائح لحل المشكلات التي قد تواجهها أثناء التحديث المستمر.
قائمة المهام الجارية
للحصول على معلومات تصحيح الأخطاء المهمة، استخدم الأمر التالي لسرد أحدث مهام التحديث المستمر التي تم تنفيذها:
az acr supply-chain workflow list -r <registryname> -g <resourcegroup> [--run-status <failed || successful || running>] -t continuouspatchv1
النتيجة الناجحة ستعيد المعلومات التالية:
- اسم الصورة والعلامة
- نوع سير العمل
- حالة المسح
- تاريخ ووقت المسح الأخير (إذا فشل الحالة، سيبقى التاريخ فارغا)
- مسح معرف المهمة (لمزيد من التصحيح)
- حالة التحديث
- تاريخ ووقت آخر تحديث (إذا فشل الحالة، سيبقى التاريخ فارغا)
- اسم الصورة المصحح + العلامة
- معرف مهمة التصحيح (لمزيد من التصحيح)
استخدم [--run-status] لإعادة جميع حالات المهام التي تطابق المرشح المحدد. على سبيل المثال، إذا حددت --run-status failed، فقط الصور التي فشلت في تصحيحها ستدرج.
إلغاء المهام الجارية
قد تتطلب بعض السيناريوهات منك إلغاء المهام التي تعمل حاليا أو تنتظر التنفيذ. على سبيل المثال، قد ترى خطأ في التكوين تفضل إصلاحه فورا، بدلا من الانتظار حتى تكتمل مهام التحديث.
لإلغاء المهام الجارية، استخدم أمر CLI التالي:
az acr supply-chain workflow cancel-run -r <registryname> -g <resourcegroup> --type <continuouspatchv1>
يقوم هذا الأمر بإلغاء جميع مهام التحديث المستمرة التي تحمل حالة Running، Queued، أو Started للجدول الزمني الحالي. على سبيل المثال، إذا ألغيت المهام على جدول يومي (--schedule 1d)، يتم إلغاء المهام في تلك الولايات لذلك اليوم، ثم تعود مجدولة لليوم التالي. إذا كان جدولك أسبوعيا، تظهر المهام الملغاة مرة أخرى في الأسبوع التالي.
ابحث عن المهام الفاشلة
استخدم أمر قائمة المهام لإخراج جميع المهام الفاشلة. تحديد الأمر cssc-patch هو الأفضل للفشل.
على سبيل المثال، هذا الأمر يعيد أفضل 10 مهام تصحيح فاشلة:
az acr task list-runs -r <registryname> -n cssc-patch-image --run-status Failed --top 10
للتحقق من فشل معين، لاحظ ال runID الذي تم إرجاعه من هذا الأمر وقم بتشغيل:
az acr task logs -r <registryname> --run-id <run-id>
إلغاء سير العمل الذي تم تكوينه بشكل خاطئ
إلغاء المهام المدرجة في الطابور باستخدام أمر الإلغاء:
az acr supply-chain workflow cancel-run -r <registryname> -g <resourcegroup> --type <continuouspatchv1>