تخطَّ إلى المحتوى

Image Scanning و SBOM و Signing

ستفهم دورة image آمنة: build، scan، SBOM، signing، ثم policy تمنع تشغيل images غير موثوقة.

قبل أن يعمل Pod، يجب أن تثق في image: مصدرها معروف، vulnerabilities مقبولة، مكوناتها موثقة، والتوقيع يثبت أنها لم تتغير بعد build.

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]
Terminal window
trivy image nginx:1.27
syft nginx:1.27 -o spdx-json > nginx-sbom.json
cosign sign registry.example.com/web:1.0.0
cosign verify registry.example.com/web:1.0.0

Expected output مختصر:

Total: 0 critical, 2 high, 10 medium
Verification for registry.example.com/web:1.0.0 --
The following checks were performed...
artifactالهدف
Scan reportمعرفة vulnerabilities
SBOMمعرفة dependencies والمكونات
Signatureإثبات مصدر image وسلامتها
Admission policyمنع تشغيل images غير مطابقة

Lab: قراءة تقرير scan وقرار release

المستوى: مبتدئ الوقت: 25 دقيقة الأدوات: trivy أو أداة scan مكافئة

الهدف: تنفيذ scan على image عامة وكتابة قرار قبول أو رفض بناء على severity.

  • أداة scan مثل Trivy.
Terminal window
trivy image nginx:1.27
trivy image --severity CRITICAL,HIGH nginx:1.27

سترى جدولا يحتوي package و vulnerability ID و severity. القرار المطلوب: هل يوجد CRITICAL قابل للإصلاح؟ هل image مناسبة للبيئة؟

لا توجد موارد Kubernetes للتنظيف.

الخطأالحل
استخدام tag مثل latestاستخدم tag ثابت أو digest
scan في CI فقط بلا policyأضف admission control أو registry policy
تجاهل base imageاختر base صغير ومدعوم