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

Pod و Image Security

لو Image نفسها خطرة أو مليئة بثغرات، Kubernetes لن يحل المشكلة وحده. يجب الاهتمام بـ:

  • اختيار Base image صغيرة وموثوقة.
  • تثبيت أقل عدد ممكن من packages.
  • عدم وضع secrets داخل Image.
  • فحص الثغرات.
  • توقيع Images عند الحاجة.
securityContext:
runAsNonRoot: true
runAsUser: 10001
allowPrivilegeEscalation: false
securityContext:
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true

Kubernetes يصف مستويات أمان للـ Pods:

  • Privileged.
  • Baseline.
  • Restricted.

في Production حاول الاقتراب من Restricted قدر الإمكان.

Admission Controller يفحص الطلب قبل قبوله في Kubernetes. يمكن استخدامه لمنع Pods خطرة، مثل Pod يعمل privileged بدون سبب.

أدوات شائعة في هذا المجال:

  • Kyverno.
  • OPA Gatekeeper.
  • السياسات المدمجة مثل Pod Security Admission.

Lab: تشغيل Pod بدون root

المستوى: مبتدئ الوقت: 30 دقيقة الأدوات: kubectl

الهدف: إضافة securityContext إلى Deployment واختبار تشغيله.

أضف securityContext إلى Deployment، ثم نفذ:

Terminal window
kubectl apply -f deployment.yaml
kubectl describe pod -l app=web
kubectl exec deploy/web -- id

تكون فاهم هذا الدرس عندما تستطيع النظر إلى Pod YAML وتحدد 3 مخاطر أمنية محتملة.