تعزيز أمان Pods باستخدام securityContext
إدراج إعدادات أقل الصلاحيات في القوالب
تعزيز أمان Pods باستخدام securityContext درس مجاني في Helm Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Helm Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Helm Academy 4 دروس في المجموع.
سبب التقوية افتراضيًا
يحمي المخطط الذي يأتي بقيم افتراضية تلتزم بأقل قدر من الصلاحيات كل عنقود يثبّته. فالأمان المضمّن في القوالب أفضل من الأمل في أن يتذكر المستخدمون إضافته.
مستويان من securityContext
يمكنكم تعيين securityContext على مستوى الـ pod ليشمل جميع الحاويات، وتعيين آخر أكثر تحديدًا لكل حاوية. ويتجاوز إعداد الحاوية إعداد الـ pod بالنسبة إلى تلك الحاوية.
لا تشغّلوا الحاويات بصلاحية root
عيّنوا runAsNonRoot إلى true لكي يرفض Kubernetes تشغيل حاوية ستعمل بصلاحية root. وهذا أعلى إعداد افتراضي تأثيرًا يمكنكم شحنه.
securityContext:
runAsNonRoot: true
runAsUser: 1000نظام ملفات root للقراءة فقط
فعّلوا readOnlyRootFilesystem حتى لا تتمكن الحاوية من الكتابة إلى طبقات صورتها الخاصة. واستخدموا emptyDir لأي مسارات يحتاج التطبيق فعلًا إلى الكتابة فيها.
containers:
- name: app
securityContext:
readOnlyRootFilesystem: trueأسقطوا إمكانات Linux
لا تحتاج معظم التطبيقات إلى صلاحيات خاصة في النواة، لذلك أسقطوا ALL من الإمكانات وأعيدوا فقط الإمكانية النادرة التي يتطلبها حمل العمل فعلًا.
capabilities:
drop:
- ALLاحظروا تصعيد الصلاحيات
عيّنوا allowPrivilegeEscalation إلى false حتى لا تتمكن أي عملية من اكتساب صلاحيات أكثر من تلك التي بدأت بها، حتى عبر الملفات التنفيذية setuid. 🔒
allowPrivilegeEscalation: falseعيّنوا fsGroup
استخدموا fsGroup في securityContext الخاص بالـ pod، حتى تكون وحدات التخزين المركّبة مملوكة لمجموعة ينتمي إليها المستخدم غير الجذر، مما يتجنب أخطاء الصلاحيات.
securityContext:
fsGroup: 2000لا تعيّنوا privileged إلى True مطلقًا
تتمتع الحاوية privileged بإمكانية وصول شبه كاملة إلى المضيف، ولذلك يجب ألا تظهر أساسًا في القيم الافتراضية للمخطط. اتركوها دون تعيين، فهذا يعني false.
اجعلوه قابلًا للتجاوز
اربطوا securityContext بـ values باستخدام toYaml، حتى يتمكن المستخدمون من تعديله، لكن أبقوا إعدادات التقوية قيمكم الافتراضية الآمنة.
securityContext:
{{- toYaml .Values.securityContext | nindent 4 }}توافقوا مع معايير أمان الـ pod
تتوافق هذه القيم الافتراضية مع معيار أمان الـ pod restricted في Kubernetes، لذلك يُثبّت مخططكم بنجاح حتى في مساحات الأسماء المقيدة بشدة.
تحققوا بعد التثبيت
تأكدوا من تطبيق التقوية بفحص مواصفات الـ pod قيد التشغيل باستخدام kubectl get pod -o yaml، والتحقق من حقول securityContext.
kubectl get pod myapp -o jsonpath='{.spec.securityContext}'اختبار سريع
أي إعداد يمنع بدء الحاوية إذا كانت ستعمل كمستخدم root؟
مراجعة
قوّيتم حماية الـ pods باستخدام runAsNonRoot، وأسقطتم الإمكانات، وفعّلتم نظام ملفات للقراءة فقط، ومنعتم تصعيد الصلاحيات. تحمي القيم الافتراضية الآمنة كل عملية تثبيت. ✅
الأسئلة الشائعة
هل درس «تعزيز أمان Pods باستخدام securityContext» مجاني؟
نعم — نص درس «تعزيز أمان Pods باستخدام securityContext» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Helm Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Helm Academy 4 دروس في المجموع.
ماذا ستتعلم في «تعزيز أمان Pods باستخدام securityContext»؟
إدراج إعدادات أقل الصلاحيات في القوالب تتمرن على Helm Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Helm Academy؟
لا تُشترط خبرة سابقة. Helm Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «تعزيز أمان Pods باستخدام securityContext»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Helm Academy هذا؟
نعم. كل درس في Helm Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- التسميات القياسية واصطلاحات التسمية
- قيم افتراضية سليمة وموثقة
- تعزيز أمان Pods باستخدام securityContext
- تثبيت الإصدارات وتجنب latest