حماية تصلب مستوى بيانات Kubernetes الخاص بك
توضح هذه الصفحة كيفية استخدام Microsoft Defender لمجموعة توصيات الأمان الخاصة ب Cloud المخصصة لتقوية مستوى بيانات Kubernetes.
تلميح
للحصول على قائمة بتوصيات الأمان التي قد تظهر لمجموعات وعقد Kubernetes، راجع توصيات الحاوية في الجدول المرجعي للتوصيات.
إعداد حماية عبء العمل
يتضمن Microsoft Defender for Cloud حزمة من التوصيات المتوفرة بمجرد تثبيت الوظيفة الإضافية "نهج Azure" ل Kubernetes أو الملحقات.
المتطلبات الأساسية
- أضف قواعد FQDN/التطبيق المطلوبة لنهج Azure.
- (للمجموعات غير AKS) الاتصال مجموعة Kubernetes موجودة إلى Azure Arc.
تمكين تصلب مستوى بيانات 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):
تسجيل الدخول إلى مدخل Azure.
انتقل إلى Microsoft Defender للحصول علىإعدادات CloudEnvironment>.
حدد الاشتراك ذا الصلة.
في صفحة خطط Defender، تأكد من تبديل الحاويات إلى تشغيل.
حدد Configure.
في صفحة التكوين المتقدم، قم بتبديل كل مكون ذي صلة إلى تشغيل.
حدد حفظ.
تكوين مكونات ديفندر للحاويات
إذا قمت بتعطيل أي من وسائل الحماية الافتراضية عند تمكين Microsoft Defender for Containers، فيمكنك تغيير التكوينات وإعادة تمكينها عبر إدارة الحسابات التلقائية.
لتكوين مكونات ديفندر للحاويات:
تسجيل الدخول إلى مدخل Azure.
انتقل إلى Microsoft Defender للحصول علىإعدادات CloudEnvironment>.
حدد الاشتراك ذا الصلة.
من شريط الأدوات على الجانب الأيمن، اختر إدارة الحسابات التلقائية.
تأكد من تبديل مكونات Microsoft Defender for Containers (معاينة) إلى تشغيل.
حدد تحرير التكوين.
في صفحة التكوين المتقدم، قم بتبديل كل مكون ذي صلة إلى تشغيل.
حدد 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.
لنشر الوظيفة الإضافية إلى مجموعات محددة:
من صفحة التوصيات، ابحث عن التوصية
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.
تلميح
يتم تضمين التوصية في خمسة عناصر تحكم أمان مختلفة ولا يهم أي منها تحدده في الخطوة التالية.
من أي من عناصر التحكم في الأمان، حدد التوصية للاطلاع على الموارد التي يمكنك تثبيت الوظيفة الإضافية عليها.
حدد المجموعة ذات الصلة، وقم بمعالجتها.
عرض حزمة التوصيات وتكوينها
بعد حوالي 30 دقيقة من اكتمال تثبيت الوظيفة الإضافية، يعرض Defender for Cloud الحالة الصحية للمجموعات للحصول على التوصيات التالية، كل منها في عنصر التحكم الأمني ذي الصلة كما هو موضح:
ملاحظة
إذا كنت تقوم بتثبيت الوظيفة الإضافية لأول مرة، فستظهر هذه التوصيات كإضافات جديدة في قائمة التوصيات.
تلميح
تحتوي بعض التوصيات على معلمات يجب تخصيصها عبر Azure Policy لاستخدامها بفعالية. على سبيل المثال، للاستفادة من التوصية يجب نشر صور الحاوية فقط من السجلات الموثوق بها، سيتعين عليك تحديد السجلات الموثوق بها.
إذا لم تقم بإدخال المعلمات الضرورية للتوصيات التي تتطلب التكوين، فستظهر أحمال العمل الخاصة بك على أنها غير صحية.
اسم التوصية التحكم في الأمان التكوين المطلوب يجب فرض حدود وحدة المعالجة المركزية والذاكرة في الحاوية حماية التطبيقات من هجمات DDoS نعم يجب نشر صور الحاويات فقط من السجلات الموثوق بها علاج الثغرات الأمنية نعم يجب فرض قدرات Linux الأقل امتيازا على الحاويات إدارة الوصول والأذونات نعم يجب أن تستخدم الحاويات ملفات تعريف AppArmor المسموح بها فقط معالجة تكوينات الأمان نعم يجب أن تستمع الخدمات على المنافذ المسموح بها فقط تقييد الوصول غير المصرح به إلى الشبكة نعم يجب تقييد استخدام الشبكات والمنافذ المضيفة تقييد الوصول غير المصرح به إلى الشبكة نعم يجب أن يقتصر استخدام حوامل وحدة تخزين HostPath pod على قائمة معروفة إدارة الوصول والأذونات نعم يجب تجنب الحاويات ذات الامتيازات المتصاعدة إدارة الوصول والأذونات لا يجب تجنب مشاركة الحاويات في مساحات أسماء المضيف الحساسة إدارة الوصول والأذونات لا يجب فرض نظام الملفات الجذرية غير القابل للتغيير (للقراءة فقط) للحاويات إدارة الوصول والأذونات لا يجب أن تكون مجموعات Kubernetes متاحة فقط عبر HTTPS تشفير البيانات أثناء النقل لا يجب أن تقوم مجموعات Kubernetes بتعطيل بيانات اعتماد API للتحميل التلقائي إدارة الوصول والأذونات لا يجب ألا تستخدم مجموعات Kubernetes مساحة الاسم الافتراضية تنفيذ أفضل الممارسات الأمنية لا يجب ألا تمنح مجموعات Kubernetes قدرات أمان CAPSYSADMIN إدارة الوصول والأذونات لا يجب تجنب الحاويات المميزة إدارة الوصول والأذونات لا يجب تجنب تشغيل الحاويات كمستخدم جذر إدارة الوصول والأذونات لا
للحصول على توصيات ذات معلمات تحتاج إلى تخصيص ، ستحتاج إلى تعيين المعلمات:
لتعيين المعلمات:
تسجيل الدخول إلى مدخل Azure.
انتقل إلى Microsoft Defender للحصول علىإعدادات CloudEnvironment>.
حدد الاشتراك ذا الصلة.
من قائمة Defender for Cloud، حدد سياسة الأمان.
حدد المهمة ذات الصلة. التعيين الافتراضي هو
ASC default.افتح علامة التبويب المعلمات وقم بتعديل القيم كما هو مطلوب.
حدد مراجعة + حفظ.
حدد حفظ.
لتنفيذ أي من التوصيات:
افتح صفحة تفاصيل التوصية وحدد رفض:
سيؤدي ذلك إلى فتح الجزء حيث قمت بتعيين النطاق.
عند تعيين النطاق، حدد تغيير إلى رفض.
لمعرفة التوصيات التي تنطبق على مجموعاتك:
افتح صفحة مخزون أصول Defender for Cloud واستخدم عامل تصفية نوع المورد لخدمات Kubernetes.
حدد مجموعة للتحقيق في التوصيات المتاحة لها ومراجعتها.
عند عرض توصية من مجموعة حماية عبء العمل، سترى عدد القرون المتأثرة ("مكونات Kubernetes") مدرجة إلى جانب المجموعة. للحصول على قائمة بالقرون المحددة، حدد المجموعة ثم حدد اتخاذ إجراء.
لاختبار التنفيذ، استخدم عمليتي نشر 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.
للاطلاع على المواد الأخرى ذات الصلة، راجع الصفحات التالية: