حماية تصلب مستوى بيانات Kubernetes الخاص بك

توضح هذه الصفحة كيفية استخدام Microsoft Defender لمجموعة توصيات الأمان الخاصة ب Cloud المخصصة لتقوية مستوى بيانات Kubernetes.

تلميح

للحصول على قائمة بتوصيات الأمان التي قد تظهر لمجموعات وعقد Kubernetes، راجع توصيات الحاوية في الجدول المرجعي للتوصيات.

إعداد حماية عبء العمل

يتضمن Microsoft Defender for Cloud حزمة من التوصيات المتوفرة بمجرد تثبيت الوظيفة الإضافية "نهج Azure" ل Kubernetes أو الملحقات.

المتطلبات الأساسية

تمكين تصلب مستوى بيانات Kubernetes

عند تمكين Microsoft Defender for Containers، يتم تمكين كل من مجموعات خدمة Azure Kubernetes وحماية مجموعات Kubernetes (معاينة) ممكنة بواسطة Azure Arc بشكل افتراضي. يمكنك تكوين تصلب مستوى بيانات Kubernetes، عند تمكين Microsoft Defender for Containers.

لتمكين Azure Kubernetes Service clusters and Azure Arc enabled Kubernetes clusters (Preview):

  1. تسجيل الدخول إلى ⁧⁩مدخل Azure⁧⁩.

  2. انتقل إلى Microsoft Defender للحصول علىإعدادات CloudEnvironment>.

  3. حدد الاشتراك ذا الصلة.

  4. في صفحة خطط Defender، تأكد من تبديل الحاويات إلى تشغيل.

  5. حدد ⁧⁩Configure⁧⁩.

    Screenshot showing where on the defenders plan to go to to select the configure button.

  6. في صفحة التكوين المتقدم، قم بتبديل كل مكون ذي صلة إلى تشغيل.

    Screenshot showing the toggles used to enable or disable them.

  7. حدد ⁧⁩حفظ⁧⁩.

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

إذا قمت بتعطيل أي من وسائل الحماية الافتراضية عند تمكين Microsoft Defender for Containers، فيمكنك تغيير التكوينات وإعادة تمكينها عبر إدارة الحسابات التلقائية.

لتكوين مكونات ديفندر للحاويات:

  1. تسجيل الدخول إلى ⁧⁩مدخل Azure⁧⁩.

  2. انتقل إلى Microsoft Defender للحصول علىإعدادات CloudEnvironment>.

  3. حدد الاشتراك ذا الصلة.

  4. من شريط الأدوات على الجانب الأيمن، اختر إدارة الحسابات التلقائية.

  5. تأكد من تبديل مكونات Microsoft Defender for Containers (معاينة) إلى تشغيل.

    Screenshot showing that Microsoft Defender for Containers is toggled to on.

  6. حدد تحرير التكوين.

    Screenshot showing the edit configuration button.

  7. في صفحة التكوين المتقدم، قم بتبديل كل مكون ذي صلة إلى تشغيل.

    Screenshot showing each option and the toggles to enable or disable them.

  8. حدد ⁧⁩Confirm⁧⁩.

نشر الوظيفة الإضافية إلى مجموعات محددة

يمكنك تكوين الوظيفة الإضافية Kubernetes لتصلب مستوى البيانات يدويا، أو حماية الملحقات من خلال صفحة التوصيات. ويمكن تحقيق ذلك عن طريق معالجة Azure Policy add-on for Kubernetes should be installed and enabled on your clusters التوصية، أو Azure policy extension for Kubernetes should be installed and enabled on your clusters.

لنشر الوظيفة الإضافية إلى مجموعات محددة:

  1. من صفحة التوصيات، ابحث عن التوصية Azure Policy add-on for Kubernetes should be installed and enabled on your clustersأو Azure policy extension for Kubernetes should be installed and enabled on your clusters.

    Recommendation **Azure Policy add-on for Kubernetes should be installed and enabled on your clusters**.

    تلميح

    يتم تضمين التوصية في خمسة عناصر تحكم أمان مختلفة ولا يهم أي منها تحدده في الخطوة التالية.

  2. من أي من عناصر التحكم في الأمان، حدد التوصية للاطلاع على الموارد التي يمكنك تثبيت الوظيفة الإضافية عليها.

  3. حدد المجموعة ذات الصلة، وقم بمعالجتها.

    Recommendation details page for Azure Policy add-on for Kubernetes should be installed and enabled on your clusters.

عرض حزمة التوصيات وتكوينها

  1. بعد حوالي 30 دقيقة من اكتمال تثبيت الوظيفة الإضافية، يعرض Defender for Cloud الحالة الصحية للمجموعات للحصول على التوصيات التالية، كل منها في عنصر التحكم الأمني ذي الصلة كما هو موضح:

    ملاحظة

    إذا كنت تقوم بتثبيت الوظيفة الإضافية لأول مرة، فستظهر هذه التوصيات كإضافات جديدة في قائمة التوصيات.

    تلميح

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

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

    اسم التوصية التحكم في الأمان التكوين المطلوب
    يجب فرض حدود وحدة المعالجة المركزية والذاكرة في الحاوية حماية التطبيقات من هجمات DDoS نعم
    يجب نشر صور الحاويات فقط من السجلات الموثوق بها علاج الثغرات الأمنية نعم
    يجب فرض قدرات Linux الأقل امتيازا على الحاويات إدارة الوصول والأذونات نعم
    يجب أن تستخدم الحاويات ملفات تعريف AppArmor المسموح بها فقط معالجة تكوينات الأمان نعم
    يجب أن تستمع الخدمات على المنافذ المسموح بها فقط تقييد الوصول غير المصرح به إلى الشبكة نعم
    يجب تقييد استخدام الشبكات والمنافذ المضيفة تقييد الوصول غير المصرح به إلى الشبكة نعم
    يجب أن يقتصر استخدام حوامل وحدة تخزين HostPath pod على قائمة معروفة إدارة الوصول والأذونات نعم
    يجب تجنب الحاويات ذات الامتيازات المتصاعدة إدارة الوصول والأذونات لا
    يجب تجنب مشاركة الحاويات في مساحات أسماء المضيف الحساسة إدارة الوصول والأذونات لا
    يجب فرض نظام الملفات الجذرية غير القابل للتغيير (للقراءة فقط) للحاويات إدارة الوصول والأذونات لا
    يجب أن تكون مجموعات Kubernetes متاحة فقط عبر HTTPS تشفير البيانات أثناء النقل لا
    يجب أن تقوم مجموعات Kubernetes بتعطيل بيانات اعتماد API للتحميل التلقائي إدارة الوصول والأذونات لا
    يجب ألا تستخدم مجموعات Kubernetes مساحة الاسم الافتراضية تنفيذ أفضل الممارسات الأمنية لا
    يجب ألا تمنح مجموعات Kubernetes قدرات أمان CAPSYSADMIN إدارة الوصول والأذونات لا
    يجب تجنب الحاويات المميزة إدارة الوصول والأذونات لا
    يجب تجنب تشغيل الحاويات كمستخدم جذر إدارة الوصول والأذونات لا

للحصول على توصيات ذات معلمات تحتاج إلى تخصيص ، ستحتاج إلى تعيين المعلمات:

لتعيين المعلمات:

  1. تسجيل الدخول إلى ⁧⁩مدخل Azure⁧⁩.

  2. انتقل إلى Microsoft Defender للحصول علىإعدادات CloudEnvironment>.

  3. حدد الاشتراك ذا الصلة.

  4. من قائمة Defender for Cloud، حدد سياسة الأمان.

  5. حدد المهمة ذات الصلة. التعيين الافتراضي هو ASC default.

  6. افتح علامة التبويب المعلمات وقم بتعديل القيم كما هو مطلوب.

    Modifying the parameters for one of the recommendations in the Kubernetes data plane hardening protection bundle.

  7. حدد مراجعة + حفظ.

  8. حدد ⁧⁩حفظ⁧⁩.

لتنفيذ أي من التوصيات:

  1. افتح صفحة تفاصيل التوصية وحدد رفض:

    Deny option for Azure Policy parameter.

    سيؤدي ذلك إلى فتح الجزء حيث قمت بتعيين النطاق.

  2. عند تعيين النطاق، حدد تغيير إلى رفض.

لمعرفة التوصيات التي تنطبق على مجموعاتك:

  1. افتح صفحة مخزون أصول Defender for Cloud واستخدم عامل تصفية نوع المورد لخدمات Kubernetes.

  2. حدد مجموعة للتحقيق في التوصيات المتاحة لها ومراجعتها.

عند عرض توصية من مجموعة حماية عبء العمل، سترى عدد القرون المتأثرة ("مكونات Kubernetes") مدرجة إلى جانب المجموعة. للحصول على قائمة بالقرون المحددة، حدد المجموعة ثم حدد اتخاذ إجراء.

Viewing the affected pods for a K8s recommendation.

لاختبار التنفيذ، استخدم عمليتي نشر Kubernetes أدناه:

  • الأول هو النشر الصحي ، المتوافق مع مجموعة توصيات حماية عبء العمل.

  • والآخر هو نشر غير صحي ، غير ممتثل لأي من التوصيات.

انشر مثال ملفات .yaml كما هو، أو استخدمها كمرجع لمعالجة عبء العمل الخاص بك (الخطوة الثامنة).

مثال النشر السليم ملف .yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis-healthy-deployment
  labels:
    app: redis
spec:
  replicas: 3
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
      annotations:
        container.apparmor.security.beta.kubernetes.io/redis: runtime/default
    spec:
      containers:
      - name: redis
        image: <customer-registry>.azurecr.io/redis:latest
        ports:
        - containerPort: 80
        resources:
          limits:
            cpu: 100m
            memory: 250Mi
        securityContext:
          privileged: false
          readOnlyRootFilesystem: true
          allowPrivilegeEscalation: false
          runAsNonRoot: true
          runAsUser: 1000
---
apiVersion: v1
kind: Service
metadata:
  name: redis-healthy-service
spec:
  type: LoadBalancer
  selector:
    app: redis
  ports:
  - port: 80
    targetPort: 80

مثال على النشر غير الصحي ملف .yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis-unhealthy-deployment
  labels:
    app: redis
spec:
  replicas: 3
  selector:
    matchLabels:
      app: redis
  template:
    metadata:      
      labels:
        app: redis
    spec:
      hostNetwork: true
      hostPID: true 
      hostIPC: true
      containers:
      - name: redis
        image: redis:latest
        ports:
        - containerPort: 9001
          hostPort: 9001
        securityContext:
          privileged: true
          readOnlyRootFilesystem: false
          allowPrivilegeEscalation: true
          runAsUser: 0
          capabilities:
            add:
              - NET_ADMIN
        volumeMounts:
        - mountPath: /test-pd
          name: test-volume
          readOnly: true
      volumes:
      - name: test-volume
        hostPath:
          # directory location on host
          path: /tmp
---
apiVersion: v1
kind: Service
metadata:
  name: redis-unhealthy-service
spec:
  type: LoadBalancer
  selector:
    app: redis
  ports:
  - port: 6001
    targetPort: 9001

الخطوات التالية

في هذه المقالة، تعلمت كيفية تكوين تصلب مستوى بيانات Kubernetes.

للاطلاع على المواد الأخرى ذات الصلة، راجع الصفحات التالية: