0Pricing
DevOps Bootcamp · درس

أمان الحاويات أثناء التشغيل

طبّق أفضل الممارسات لتأمين الحاويات أثناء التشغيل، بما في ذلك امتيازات المستخدمين وحدود الموارد

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

أساسيات أمان وقت التشغيل

مرحبًا بك في أمان الحاويات وقت التشغيل! يُعد إنشاء صور آمنة أمرًا بالغ الأهمية، ولكن ماذا يحدث بعد تشغيل الحاوية؟

يركز هذا الدرس على أفضل الممارسات لحماية تطبيقاتك أثناء تشغيلها، والحد من الأضرار المحتملة الناتجة عن الثغرات الأمنية أو الهجمات.

أمان الحاويات أثناء التشغيل — رسم توضيحي 1

مبدأ الحد الأدنى من الامتيازات

يُعد مبدأ الحد الأدنى من الامتيازات مفهومًا أساسيًا في الأمان. ويعني منح كيان ما (مثل حاوية أو مستخدم) الصلاحيات الضرورية تمامًا لأداء وظيفته، دون أي صلاحيات إضافية.

يؤدي تطبيق هذا المبدأ إلى تقليل سطح الهجوم والحد من الأثر في حال اختراق حاوية.

تجنب التشغيل بصلاحيات root

تعمل العمليات داخل حاوية Docker افتراضيًا كمستخدم root، الذي يتمتع بصلاحيات إدارية كاملة داخل الحاوية.

  • الخطر: إذا سيطر مهاجم على حاوية تتمتع بامتيازات root، فقد يستغل الثغرات الموجودة في Docker daemon أو النواة للحصول على صلاحيات root على النظام المضيف.
  • أفضل ممارسة: شغّل دائمًا عمليات الحاوية كمستخدم غير root.

التشغيل كمستخدم غير root

يمكنك تحديد مستخدم (بالاسم أو UID) لعملية الحاوية باستخدام الخيار --user مع docker run. في هذا المثال، نشغّل الأمر id في حاوية Alpine كمستخدم رقمه 1000.

إذا لم يكن المستخدم 1000 موجودًا، فسيظل Docker يستخدم ذلك الـ UID.

docker run --rm -it --user 1000 alpine id

فهم إمكانات Linux

تستخدم أنظمة Linux التقليدية مستخدم root بصلاحيات شاملة أو بلا صلاحيات. وتعمل إمكانات Linux على تقسيم امتيازات root القوية إلى وحدات أصغر ومستقلة.

يسمح ذلك للعملية بامتلاك الصلاحيات المحددة المشابهة لصلاحيات root التي تحتاج إليها فقط (مثل الربط بالمنافذ المنخفضة والوصول إلى الشبكة الخام)، دون امتلاك صلاحيات root كاملة.

إسقاط الإمكانات غير اللازمة

تعمل حاويات Docker افتراضيًا بمجموعة كبيرة من الإمكانات. ويمكنك إسقاط الإمكانات غير الضرورية باستخدام --cap-drop لفرض قيود إضافية على ما يمكن للحاوية تنفيذه.

في هذا المثال، نسقط الإمكانية NET_RAW. وسيفشل عندئذٍ الأمر ping، الذي يتطلب NET_RAW، مما يوضّح القيد المفروض.

docker run --rm -it --cap-drop=NET_RAW alpine ping -c 1 localhost || echo "Ping failed: NET_RAW capability dropped!"

التحكم في موارد الحاوية

تتشارك الحاويات نواة النظام المضيف وموارده. وقد يؤدي الاستخدام غير المنضبط للموارد من جانب حاوية واحدة إلى حجب الخدمة (DoS) للحاويات الأخرى أو حتى للنظام المضيف نفسه.

  • حدود وحدة المعالجة المركزية: تمنع الحاوية من الاستئثار بدورات المعالجة.
  • حدود الذاكرة: تمنع الحاوية من استهلاك كامل الذاكرة العشوائية المتاحة، مما يحول دون عدم استقرار النظام.

تطبيق حدود الموارد

يمكنك تعيين حدود لوحدة المعالجة المركزية والذاكرة مباشرةً باستخدام docker run. يحد هذا المثال الذاكرة إلى 128MB واستخدام وحدة المعالجة المركزية إلى 0.5 (نصف نواة CPU واحدة).

يضمن ذلك عمل الحاوية بصورة جيدة دون حرمان العمليات الأخرى من الموارد.

docker run --rm -it --memory="128m" --cpus="0.5" alpine sh -c "echo 'Container running with limited resources.' && free -h"

أنظمة الملفات للقراءة فقط

لا تحتاج كثير من التطبيقات إلى الكتابة في نظام ملفاتها الجذري بعد بدء التشغيل. ومن خلال جعل نظام الملفات للقراءة فقط، تحصل على فوائد أمنية مهمة:

  • منع العبث: لا يستطيع المهاجم تعديل الملفات الموجودة أو كتابة ملفات ضارة جديدة.
  • الحد من الاستمرارية: تكون أي تغييرات تُجرى مؤقتة وتُفقد عند إعادة تشغيل الحاوية.
  • فرض عدم القابلية للتغيير: يشجع ذلك تصميمًا تكون فيه الحاويات قابلة للاستبدال ويكون الإعداد خارجيًا.

نشر حاويات للقراءة فقط

استخدم الخيار --read-only عند تشغيل حاوية. وستفشل أي محاولة للكتابة في نظام ملفات الحاوية (باستثناء وحدات التخزين المركّبة صراحةً).

جرّب إنشاء ملف في هذه الحاوية للقراءة فقط:

docker run --rm -it --read-only alpine sh -c "touch /test.txt || echo 'Error: Cannot write to read-only filesystem!'"

فحص أمان وقت التشغيل

أيّ من الممارسات التالية يُعد جيدًا لتأمين الحاويات وقت التشغيل؟

مراجعة أمان وقت التشغيل

أحسنت! لقد تعلمت كيفية تعزيز أمان الحاويات أثناء تشغيلها:

  • الحد الأدنى من الامتيازات: امنح الصلاحيات الضرورية فقط.
  • المستخدمون غير root: تجنب تشغيل العمليات كمستخدم root.
  • الإمكانات: أسقط إمكانات Linux غير اللازمة.
  • حدود الموارد: تحكم في استخدام وحدة المعالجة المركزية والذاكرة.
  • للقراءة فقط: اجعل أنظمة الملفات غير قابلة للتغيير لمنع الكتابة.

تقلل هذه الممارسات بدرجة كبيرة من سطح الهجوم وأثر عمليات الاختراق المحتملة. واصل التدرّب!

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

هل درس «أمان الحاويات أثناء التشغيل» مجاني؟

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

ماذا ستتعلم في «أمان الحاويات أثناء التشغيل»؟

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

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

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

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

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

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

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

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

  1. فحص أمان صور الحاويات
  2. أمان الحاويات أثناء التشغيل
  3. إدارة الأسرار وRBAC
  4. سياسات الشبكة وشبكات أقل الصلاحيات
← العودة إلى DevOps Bootcamp