مفاهيم الأمان للتطبيقات والمجموعات في خدمة Azure Kubernetes (AKS)

يحمي أمان الحاوية البنية الأساسية لبرنامج ربط العمليات التجارية الشاملة بالكامل من البنية إلى أحمال عمل التطبيق التي تعمل في Azure Kubernetes Service (AKS).

تتضمن سلسلة التوريد الآمنة بيئة البنية والسجل.

يتضمن Kubernetes مكونات الأمان، مثل معايير أمان الجرابوالبيانات السرية. يتضمن Azure مكونات مثل Active Directory وMicrosoft Defender for Containers وAzure Policy وAzure Key Vault ومجموعات أمان الشبكة وترقيات نظام المجموعة المنسقة. تجمع AKS بين مكونات الأمان هذه من أجل:

  • توفير قصة مصادقة وتخويل كاملة.
  • تطبيق نهج Azure المضمن في AKS لتأمين تطبيقاتك.
  • نتيجة تحليلات شاملة من البنية من خلال تطبيقك باستخدام Microsoft Defender for Containers.
  • احرص على أن ترقية نظام تشغيل نظام مجموعة AKS الخاص بك إلى آخر تحديثات أمان، وكذلك أحدث إصدارات Kubernetes.
  • توفير حركة جراب آمنة جراب والوصول إلى بيانات الاعتماد الحساسة.

تقدم هذه المقالة المفاهيم الأساسية التي تؤمن تطبيقاتك في AKS.

بنية الأمان

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

أمان السجل

يكشف تقييم حالة الثغرة الأمنية للصورة في السجل عن الانجراف ويلتقط أيضا الصور التي لم تأتي من بيئة البناء الخاصة بك. استخدم Notary V2 لإرفاق التواقيع بصورك للتأكد من أن عمليات التوزيع تأتي من موقع موثوق.

أمان نظام المجموعة

في AKS، المكونات الرئيسية Kubernetes هي جزء من الخدمة المدارة التي تقدمها Microsoft وتديرها وتقوم بصيانتها. تحتوي كل مجموعة AKS على Kubernetes رئيسي خاص بها مستأجر واحد ومخصص لتوفير خادم API و Scheduler وما إلى ذلك. لمزيد من المعلومات، راجع إدارة الثغرات الأمنية لخدمة Azure Kubernetes.

بشكل افتراضي، يستخدم خادم API Kubernetes عنوان IP عام، واسم مجال مؤهل بالكامل. يمكنك تقييد الوصول إلى نقطة نهاية خادم API باستخدام نطاقات IP المعتمدة. يمكنك أيضًا إنشاء نظام مجموعة خاص بالكامل للحد من وصول خادم API إلى الشبكة الظاهرية.

يمكنك التحكم في الوصول إلى خادم API باستخدام عنصر تحكم الوصول المستند إلى دور Kubernetes (Kubernetes RBAC) وAzure RBAC. لمزيد من المعلومات، راجع تكامل Microsoft Entra مع AKS.

أمان العقدة

عقد AKS هي الأجهزة الظاهرية Azure (VMs) التي تقوم بإدارتها وصيانتها.

  • تعمل عقد Linux على تشغيل إصدارات محسنة من Ubuntu أو Azure Linux.
  • تشغل عقد خادم Windows إصدار محسن Windows Server 2019 باستخدام containerd أو وقت تشغيل حاوية Docker.

عند إنشاء مجموعة AKS أو توسيع نطاقها، يتم نشر العقد تلقائياً مع أحدث تحديثات الأمان وتكوينات نظام التشغيل.

إشعار

مجموعات AKS قيد التشغيل:

  • Kubernetes الإصدار 1.19 والإصدارات الأحدث - تستخدم containerd تجمعات عقد Linux كوقت تشغيل الحاوية الخاص بها. تستخدم containerd تجمعات عقد Windows Server 2019 وقت تشغيل الحاوية الخاص بها، وهو قيد المعاينة حاليا. لمزيد من المعلومات، راجع إضافة تجمع عقدة Windows Server باستخدام containerd.
  • Kubernetes الإصدار 1.19 والإصدارات السابقة - تستخدم تجمعات عقد Linux Docker كوقت تشغيل الحاوية. تستخدم تجمعات عقد Windows Server 2019 Docker لوقت تشغيل الحاوية الافتراضي.

لمزيد من المعلومات حول عملية ترقية الأمان لعقد Linux وWindows العاملة، راجع عقد تصحيح الأمان.

تتضمن مجموعات AKS التي تقوم بتشغيل أجهزة Azure الظاهرية من الجيل 2 دعما للتشغيل الموثوق به (معاينة)، والذي يحمي من تقنيات الهجوم المتقدمة والمستمرة من خلال الجمع بين التقنيات التي يمكن تمكينها بشكل مستقل، مثل التمهيد الآمن والإصدار الظاهري من وحدة النظام الأساسي الموثوق بها (vTPM). يمكن مسؤول istrators نشر عقد عامل AKS مع أجهزة تحميل التمهيد التي تم التحقق منها وموقعة، ونوى نظام التشغيل، وبرامج التشغيل لضمان تكامل سلسلة التمهيد بأكملها للجهاز الظاهري الأساسي.

تخويل عقدة

تخويل العقدة هو وضع تخويل خاص الغرض يخول على وجه التحديد طلبات واجهة برمجة تطبيقات kubelet للحماية من الهجمات بين الشرق والغرب. يتم تمكين تخويل العقدة بشكل افتراضي على AKS 1.24 + أنظمة المجموعات.

نشر العقدة

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

تخزين العقدة

لتوفير التخزين، تستخدم Azure Managed Disks. بالنسبة لمعظم أحجام عقد الأجهزة الظاهرية، فإن الأقراص المدارة عبر Azure هي أقراص Premium يتم تدعيمها بأقراص SSD عالية الأداء. يتم تشفير البيانات المخزنة على الأقراص المدارة تلقائياً في حالة الثبات داخل منصة Azure. لتحسين عملية حفظ النسخة المتماثلة، يتم نسخ الأقراص المدارة Azure بشكل آمن داخل مركز بيانات Azure.

أحمال العمل العدائية متعددة المستأجرين

حاليا، بيئات Kubernetes ليست آمنة للاستخدام العدائي متعدد المستأجرين. تعمل ميزات الأمان الإضافية، مثل نُهج أمان الجراب أو Kubernetes RBAC للعقد، على حظر عمليات الاستغلال بكفاءة. للأمان الحقيقي عند تشغيل أحمال عمل عدائية متعددة المستأجرين، لا تثق إلا في برنامج مراقبة الأجهزة الافتراضية. مجال الأمان لـ Kubernetes يصبح المجموعة بأكملها، وليس عقدة فردية.

بالنسبة لهذه الأنواع من أحمال العمل العدائية متعددة المستأجرين، يجب عليك استخدام مجموعات معزولة ماديا. لمزيد من المعلومات حول طرق عزل أعباء العمل، راجع أفضل الممارسات لعزل نظم المجموعات في AKS.

حساب العزل

بسبب الامتثال أو المتطلبات التنظيمية، قد تتطلب أعباء عمل معينة درجة عالية من العزلة عن أعباء عمل العملاء الأخرى. بالنسبة لأحمال العمل هذه، يوفر Azure:

  • حاويات Kernel المعزولة لاستخدامها كعقد عامل في نظام مجموعة AKS. يتم عزل هذه الحاويات تماما إلى نوع جهاز معين ومعزولة عن نسيج مضيف Azure ونظام التشغيل المضيف وhypervisor. وهي مخصصة لعميل واحد. حدد أحد أحجام الأجهزة الظاهرية المعزولةكحجم العقدة عند إنشاء نظام مجموعة AKS أو إضافة تجمع عقدة.
  • تقوم الحاويات السرية (المعاينة)، المستندة أيضا إلى حاويات Kata السرية، بتشفير ذاكرة الحاوية ومنع البيانات في الذاكرة أثناء الحساب من أن تكون في نص واضح وتنسيق قابل للقراءة والعبث. يساعد على عزل الحاويات الخاصة بك عن مجموعات الحاويات الأخرى/pods، بالإضافة إلى نواة نظام تشغيل عقدة الجهاز الظاهري. تستخدم الحاويات السرية (معاينة) تشفير الذاكرة المستندة إلى الأجهزة (SEV-SNP).
  • توفر Pod Sandboxing (معاينة) حد عزل بين تطبيق الحاوية والنواة المشتركة وموارد الحوسبة (وحدة المعالجة المركزية والذاكرة والشبكة) لمضيف الحاوية.

أمن الشبكة

للاتصال والأمان مع الشبكات المحلية، يمكنك نشر نظام مجموعة AKS في شبكات Azure الفرعية الموجودة. تتصل هذه الشبكات الظاهرية بالشبكة المحلية باستخدام Azure Site-to-Site VPN أو Express Route. تعريف وحدات تحكم خروج Kubernetes مع عناوين IP الداخلية والخاصة للحد من وصول الخدمات إلى اتصال الشبكة الداخلية.

مجموعات أمان شبكة Azure

لتصفية نسبة استخدام الشبكة الظاهرية، يستخدم Azure قواعد مجموعة أمان الشبكة. تعرف هذه القواعد نطاقات IP المصدر والوجهة، المنافذ والبروتوكولات المسموح المرفوض وصولها إلى الموارد. يتم إنشاء القواعد الافتراضية للسماح لحركة المرور TLS إلى خادم API Kubernetes. إنشاء خدمات مع موازنات التحميل أو تعيينات المنفذ أو مسارات الدخول. تقوم AKS بتعديل مجموعة أمان الشبكة تلقائيا لتدفق حركة المرور.

إذا قمت بتوفير الشبكة الفرعية الخاصة بك لنظام مجموعة AKS (سواء باستخدام Azure CNI أو Kubenet)، لا تقم بتعديل مجموعة أمان الشبكة على مستوى NIC التي تديرها AKS. بدلًا من ذلك، أنشئ مجموعات أمان شبكة الاتصال على مستوى الشبكة الفرعية لتعديل تدفق حركة المرور. تأكد من أنها لا تتداخل مع حركة المرور الضرورية التي تدير المجموعة، مثل الوصول إلى موازن التحميل، أو الاتصال بلوحة التحكم، أو الخروج.

نُهج شبكة Kubernetes

للحد من حركة مرور الشبكة بين وحدات الجراب في نظام المجموعة، تقدم AKS الدعم لـنُهج شبكة Kubernetes. باستخدام نهج الشبكة، يمكنك السماح أو رفض مسارات شبكة محددة داخل نظام المجموعة استنادًا إلى مساحات الأسماء ومحددات التسميات.

أمان التطبيقات

لحماية الحجيرات التي تعمل على AKS، ضع في اعتبارك Microsoft Defender for Containers للكشف عن الهجمات الإلكترونية وتقييدها ضد تطبيقاتك التي تعمل في pods الخاصة بك. قم بتشغيل الفحص المستمر لكشف الانحراف في حالة الثغرة الأمنية لتطبيقك وتنفيذ عملية "الأزرق/الأخضر/الكناري" لتصحيح الصور العرضة للتهديدات واستبدالها.

Kubernetes Secrets

باستخدام بياناتKubernetesالسرية، يمكنك حقن البيانات الحساسة في وحدات الجراب، مثل بيانات اعتماد الوصول أو المفاتيح.

  1. قم بإنشاء بيانات سرية باستخدام Kubernetes API.
  2. حدد وحدات الجراب الخاصة بك أو النشر واطلب بيانات سرية محددة.
    • يتم توفير البيانات السرية فقط للعقد ذات الجراب المجدول الذي يحتاجها.
    • يتم تخزين البيانات السرية في tmpfs ، ولا يتم كتابتها على القرص.
  3. عند حذف آخر جراب على عقدة تتطلب بيانات سرية، يتم حذف Secret من tmpfs للعقدة.
    • يتم تخزين الأسرار داخل مساحة اسم معينة ولا يمكن الوصول إليها إلا من pods داخل نفس مساحة الاسم.

استخدام البيانات السرية يقلل من كم المعلومات الحساسة المحددة في جراب أو بيان تطبيق خدمة YAML. بدلاً من ذلك، يمكنك طلب بيانات سرية مخزنة في خادم API Kubernetes كجزء من بيان YAML الخاص بك. يوفر هذا النهج فقط الوصول وحدة استشعار محددة إلى البيانات السرية.

إشعار

تحتوي ملفات البيان السري الخام على البيانات السرية بتنسيق base64. لمزيد من المعلومات، انظر الوثائق الرسمية. تعامل مع هذه الملفات على أنها معلومات حساسة، ولا توافق أبدًا على التحكم في المصدر بشأنها.

يتم تخزين أسرار Kubernetes في etcd، مخزن قيم المفاتيح الموزعة. تدير AKS المخزن المحفور بالكامل ويتم تشفير البيانات الثابتة داخل نظام Azure الأساسي.

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

للبدء في تأمين نظم مجموعة AKS الخاصة بك، راجع ترقية نظام مجموعة AKS.

للاطلاع على أفضل الممارسات ذات الصلة، راجع أفضل ممارسات أمان وترقيات نظام المجموعة في AKS وأفضل ممارسات أمان الجراب في AKS.

لمزيد من المعلومات حول مفاهيم Kubernetes وAKS الأساسية، راجع المقالات التالية: