Image Scanning و SBOM و Signing
الهدف من الدرس
Section titled “الهدف من الدرس”ستفهم دورة image آمنة: build، scan، SBOM، signing، ثم policy تمنع تشغيل images غير موثوقة.
الفكرة ببساطة
Section titled “الفكرة ببساطة”قبل أن يعمل Pod، يجب أن تثق في image: مصدرها معروف، vulnerabilities مقبولة، مكوناتها موثقة، والتوقيع يثبت أنها لم تتغير بعد build.
Pipeline مقترح
Section titled “Pipeline مقترح”flowchart LR Code[Code] --> Build[Build Image] Build --> Scan[Vulnerability Scan] Scan --> SBOM[Generate SBOM] SBOM --> Sign[Sign Image] Sign --> Registry[Push Registry] Registry --> Policy[Admission Policy]أوامر نموذجية
Section titled “أوامر نموذجية”trivy image nginx:1.27syft nginx:1.27 -o spdx-json > nginx-sbom.jsoncosign sign registry.example.com/web:1.0.0cosign verify registry.example.com/web:1.0.0Expected output مختصر:
Total: 0 critical, 2 high, 10 mediumVerification for registry.example.com/web:1.0.0 --The following checks were performed...ما الذي توثقه؟
Section titled “ما الذي توثقه؟”| artifact | الهدف |
|---|---|
| Scan report | معرفة vulnerabilities |
| SBOM | معرفة dependencies والمكونات |
| Signature | إثبات مصدر image وسلامتها |
| Admission policy | منع تشغيل images غير مطابقة |
Lab: قراءة تقرير scan وقرار release
الهدف: تنفيذ scan على image عامة وكتابة قرار قبول أو رفض بناء على severity.
Prerequisites
Section titled “Prerequisites”- أداة scan مثل Trivy.
trivy image nginx:1.27trivy image --severity CRITICAL,HIGH nginx:1.27Expected output
Section titled “Expected output”سترى جدولا يحتوي package و vulnerability ID و severity. القرار المطلوب: هل يوجد CRITICAL قابل للإصلاح؟ هل image مناسبة للبيئة؟
Cleanup
Section titled “Cleanup”لا توجد موارد Kubernetes للتنظيف.
أخطاء شائعة
Section titled “أخطاء شائعة”| الخطأ | الحل |
|---|---|
استخدام tag مثل latest | استخدم tag ثابت أو digest |
| scan في CI فقط بلا policy | أضف admission control أو registry policy |
| تجاهل base image | اختر base صغير ومدعوم |