0Pricing
DevOps Bootcamp · درس

معايير أمان الوحدات

طبّق معايير أمان الوحدات لفرض أفضل ممارسات الأمان على مستوى الوحدة

معايير أمان الوحدات درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ما المقصود بـ PSS؟

معايير أمان الـ Pod في Kubernetes ‏(PSS) هي مجموعة من الإرشادات وعناصر التحكم لفرض أفضل ممارسات الأمان على الـ Pods.

وتساعد على حماية الكتلة من الثغرات الأمنية الشائعة وهجمات تصعيد الامتيازات، من خلال تقييد ما يمكن للـ Pods فعله.

فكّر فيها على أنها قائمة تحقق أمنية للـ Pods!

ثلاثة مستويات للأمان

تحدد PSS ثلاثة مستويات أمان متميزة، يقدم كل منها درجة مختلفة من الحماية:

  • Privileged: غير مقيّد، وهو الأقل أمانًا.
  • Baseline: يمنع عمليات تصعيد الامتيازات المعروفة.
  • Restricted: يفرض أفضل ممارسات الأمان المشددة.

هذه المستويات تراكمية؛ أي إن Restricted يتضمن جميع وسائل الحماية في Baseline، ويتضمن Baseline جميع ما في Privileged (أو بالأحرى، لا يتضمن قيودًا).

Privileged: وصول غير مقيّد

يوفر مستوى PSS‏ Privileged سياسة أمان غير مقيّدة.

يعني ذلك أن الـ Pods التي تعمل وفق هذه السياسة يمكنها طلب أي capability والوصول الكامل إلى موارد المضيف وnamespaces الخاصة به، على نحو يشبه التشغيل بصلاحيات root على الجهاز المضيف.

ويُعد هذا المستوى غير آمن للغاية عمومًا، ولا ينبغي استخدامه إلا لأحمال العمل على مستوى النظام التي تتطلب هذا الوصول بشكل مطلق.

Baseline: منع الاستغلالات

يهدف مستوى PSS‏ Baseline إلى منع عمليات تصعيد الامتيازات المعروفة.

وهو نقطة بداية جيدة لمعظم التطبيقات التي يعرّفها المستخدم.

وتشمل القيود الأساسية ما يلي:

  • لا توجد حاويات ذات امتيازات.
  • لا توجد وحدات تخزين hostPath (باستثناء أنواع آمنة محددة).
  • لا توجد مشاركة لشبكة المضيف أو لمساحة أسماء PID.
  • إمكانات محدودة.

يساعد هذا المستوى على الحد من العديد من أساليب الهجوم الشائعة.

Restricted: أمان مشدد

يفرض مستوى PSS‏ Restricted أفضل ممارسات الأمان المشددة.

وقد صُمم للتطبيقات شديدة الحساسية أمنيًا، ويتطلب تشغيل الـ Pods بأقل قدر ممكن من الامتيازات.

بالإضافة إلى قيود Baseline، يفرض Restricted ما يلي:

  • التشغيل كمستخدم غير root.
  • إزالة جميع إمكانات Linux وإضافة الإمكانات المطلوبة فقط.
  • اشتراط ملفات تعريف seccomp وAppArmor.

وهذا هو المستوى الأكثر أمانًا والأشد صرامة ضمن PSS.

فرض PSS باستخدام Admission

يُفرَض الالتزام بمعايير أمان الـPod باستخدام ميزة في Kubernetes تُسمى Pod Security Admission.

يعترض متحكم القبول هذا طلبات إنشاء الـPod ويتحقق منها مقابل مستوى PSS المُكوَّن لمساحة أسماء الـPod.

تطبّق مستويات PSS على مساحات الأسماء بإضافة تسميات محددة إليها. على سبيل المثال:

kubectl label namespace <namespace-name> pod-security.kubernetes.io/enforce=restricted

التحكم في أمان الـPod

لجعل الـPods متوافقة مع PSS، ستستخدم غالبًا الحقل securityContext في تعريف الـPod.

يتيح لك هذا الحقل تحديد إعدادات الامتيازات والتحكم في الوصول إلى الـPod أو إلى الحاويات الفردية الموجودة فيه.

تشمل الإعدادات الشائعة ما يلي:

  • runAsUser: يحدد معرّف المستخدم لعملية الحاوية.
  • allowPrivilegeEscalation: يمنع العملية من الحصول على امتيازات أكثر من امتيازات العملية الأصلية.
  • capabilities: يدير إمكانات Linux.

مثال على Pod غير آمن

لنلقِ نظرة على تعريف Pod ينتهك مستوى PSS Baseline بسبب سياق الأمان الخاص به. فهذا التعريف غير آمن عمومًا:

apiVersion: v1
kind: Pod
metadata:
  name: unsafe-pod
spec:
  containers:
  - name: my-container
    image: nginx
    securityContext:
      privileged: true
      # This allows the container to run with root capabilities
      # and access host devices directly.
      # Violates Baseline PSS.

مثال على Pod متوافق مع Baseline

إليك طريقة تعريف Pod يلتزم بمستوى PSS Baseline. لاحظ غياب privileged: true والقيود الأخرى.

ولتحقيق توافق أكثر صرامة مع Restricted، ستضيف runAsNonRoot: true وreadOnlyRootFilesystem: true، وستزيل جميع الإمكانات.

apiVersion: v1
kind: Pod
metadata:
  name: safe-pod
spec:
  containers:
  - name: my-container
    image: nginx
    securityContext:
      allowPrivilegeEscalation: false
      capabilities:
        drop:
        - ALL
      # This Pod runs with minimal privileges and
      # adheres to the Baseline PSS.

تحقق سريع من PSS

أي العبارات التالية حول معايير أمان الـPod (PSS) صحيحة؟

مراجعة: معايير أمان الـPod

في هذا الدرس، تعلّمت معايير أمان الـPod (PSS) في Kubernetes وأهميتها في تأمين المجموعة.

  • تحدد PSS ثلاثة مستويات: Privileged وBaseline وRestricted.
  • يمنع Baseline تصعيدات الامتيازات المعروفة، ولذلك فهو مناسب لمعظم التطبيقات.
  • يفرض Restricted أمانًا مُحكَمًا، ويتطلب الحد الأدنى من الامتيازات.
  • يساعد الحقل securityContext في إعداد الـPods بما يتوافق مع PSS.

يُعد تطبيق PSS خطوة أساسية نحو بناء بيئات Kubernetes أكثر أمانًا!

الأسئلة الشائعة

هل درس «معايير أمان الوحدات» مجاني؟

نعم — نص درس «معايير أمان الوحدات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ماذا ستتعلم في «معايير أمان الوحدات»؟

طبّق معايير أمان الوحدات لفرض أفضل ممارسات الأمان على مستوى الوحدة تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟

لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «معايير أمان الوحدات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟

نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. التحكم في الوصول المستند إلى الأدوار (RBAC)
  2. سياسات الشبكة للعزل
  3. معايير أمان الوحدات
  4. حسابات الخدمة وهوية أحمال العمل
← العودة إلى DevOps Bootcamp