كيفية أتمتة أمن الحاويات بأسلوب السياسة كرمز باستخدام CRD



سنوضح لك كيفية استخدام Kubernetes CRD لأتمتة الأمان وحماية تطبيقاتك.

الترجمة من فريق مجلة Tomorrow Cloudy Cloud.ru Cloud Solutions . المصدر: Niteen Kole كيفية أتمتة أمن الحاويات باستخدام CRDs للحصول على سياسة الأمن كرمز مع الإضافات .

لماذا تحتاج CRD


لطالما كان الأمن بمثابة صداع لفرق DevOps . نجحت أدوات البرامج الحالية في حل مشكلات أتمتة التجميع وطرح التطبيقات - أصبح الطرح التلقائي للتطبيقات القائمة على الحاويات هو المعيار. في الوقت نفسه ، فإن أتمتة إعدادات الأمان متخلفة.

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

إدخال تعريفات الموارد المخصصة (CRDs) من Kubernetes على حل المشكلات المتعلقة بتعريف سياسات الأمان كرمز في المرحلة الأولية من تجميع التطبيق وطرحه ، وأتمتة استخدامها عند طرح التطبيقات في بيئة الإنتاج.

يمكن استخدام CRD لتنفيذ سياسات الأمان العالمية التي تحدد سلوك التطبيق وتكوين أمان العديد من مجموعات Kubernetes المستخدمة.

باستخدام CRD لأتمتة وتعريف إعدادات الأمان مركزيًا كرمز ، يمكنك تشديد إعدادات الأمان وتبسيط تطبيقها في نفس الوقت. هذا يؤدي في النهاية إلى زيادة كفاءة التطبيقات ، مع عدد أقل من الأخطاء ، والأهم من ذلك ، أكثر أمانًا.

كيف تعمل CRD؟


لتحديد السياسات الأمنية ، سنستخدم NeuVector CRD داخل منصة حاويات NeuVector . بدائل NeuVector لأمن الحاويات: AquaSec و StackRox و Sysdig Secure و Twistlock.

يحتوي NeuVector CRD على سياسات تجمع أولاً ملف تعريف كامل لسلوك التطبيق العادي.

تتم إضافة السلوك المجمّع إلى القائمة البيضاء ، بما في ذلك جميع قواعد الشبكة والعمليات والبروتوكولات وعمليات الملفات. يشكل كل هذا معًا مجموعة من عمليات التطبيق القياسية. بعد ذلك ، يتم تطبيق إعدادات الأمان ، مما يسمح فقط باتصالات الشبكة المؤكدة داخل الحاويات التي يتكون منها التطبيق. يتم تحديد هذه التوصيلات أثناء فحص طبقة نموذج OSI 7 (طبقة بروتوكول التطبيق). وبالتالي ، سيتم منع أي محاولة للاتصال الخارجي غير المصرح به.

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

يسمح لك CRD بتحديد كل من القواعد والقواعد العالمية لكل خدمة على حدة. تتوافق CRDs أيضًا مع Kubernetes RBAC ، مما يسمح لك باستخدام حسابات الخدمة وأدوار Kubernetes لفرض سياسات الأمان.

بالإضافة إلى ذلك ، يتوفر الإصدار لإنشاء سياساته الخاصة لكل إصدار من التطبيق ؛ ويتم دعم التكامل مع أدوات إدارة سياسة الأمان مثل Open Policy Agent . يمكن اختبار مجموعات Kubernetes

الجاهزة مع نظام مراقبة مكيف خصيصًا يعتمد على Prometheus و Grafana ، بالإضافة إلى TLS و RBAC لإدارة حقوق الوصول وتوحيد التطوير في الفرق الموزعة ، مجانًا في السحابة السحابية Mail.ru Cloud Solutions.

إنشاء NeuVector CRD


يسمح لك NeuVector CRD باستخدام ملفات YAML Kubernetes الأصلية لإنشاء قواعد الأمان.

قم بإنشاء ملف nvsecurityrule.yaml يحتوي على وصف NeuVector CRD. يتحكم هذا الملف NvSecurityRuleتتعلق طبيعة namespacedو NvClusterSecurityRuleتتصل المجموعة.

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: nvsecurityrules.neuvector.com
spec:
  group: neuvector.com
  names:
    kind: NvSecurityRule
    listKind: NvSecurityRuleList
    plural: nvsecurityrules
    singular: nvsecurityrule
  scope: Namespaced
  version: v1
  versions:
  — name: v1
    served: true
    storage: true

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: nvclustersecurityrules.neuvector.com
spec:
  group: neuvector.com
  names:
    kind: NvClusterSecurityRule
    listKind: NvClusterSecurityRuleList
    plural: nvclustersecurityrules
    singular: nvclustersecurityrule
  scope: Cluster
  version: v1
  versions:
  — name: v1
    served: true
    storage: true

لإنشاء CRD ، قم بتشغيل:

$ kubectl create -f nvsecurityrule.yaml

بمجرد إنشاء NeuVector CRD ، سيتم معالجة جميع الموارد التي تم إنشاؤها لاحقًا باستخدام المعلمة kind: NvSecurityRuleبواسطة CRD هذا. وبالتالي ، يمكنك إنشاء مواردك الخاصة باستخدام سياسات الأمان المتصلة. قبل القيام بأي شيء ، من المستحسن دراسة وثائق NeuVector وإضافة ما يلزم clusterrolesو clusterrolebindings.

أيضًا ، يتطلب استخدام CRD هذا لتطبيق سياسات أمان NeuVector في مجموعة Kubernetes إعدادات الحقوق المناسبة (RBAC). لا يمكن تطبيق سياسات الأمان المحددة بواسطة CRD لأي مساحة اسم إلا من خلال مستخدم لديه الحق في النشر في مساحة الاسم المحددة. يتطلب تطبيق نُهج الأمان على كتلة امتيازات مسؤول الكتلة.

يوجد أدناه جزء من رمز الاختبار من demo-security-v1.yaml ، والذي يقيد الحاويات nginx-podفي مساحة الاسم من demoخلال توفير الوصول إلى حاويات أخرى من نفس مساحة الاسم فقط عبر HTTP.

apiVersion: v1
items:
- apiVersion: neuvector.com/v1
  kind: NvSecurityRule
  metadata:
    name: nv.nginx-pod.demo
  spec:
    egress:
    — Selector:
        criteria:
        — key: service
          op: =
          value: node-pod.demo
        — key: domain
          op: =
          value: demo
        name: nv.node-pod.demo
      action: allow
      applications:
      - HTTP
      name: nv.node-pod.demo-egress-0
      ports: any
    — Selector:
        criteria:
        — key: service
          op: =

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

لتطبيق سياسة أمنية:

$ kubectl create -f demo-security-v1.yaml

يقرأ NeuVector سياسات الأمان في الموارد التي تم إنشاؤها ويستخدم واجهة برمجة تطبيقات REST للاتصال بوحدة تحكم NeuVector ، التي تنشئ القواعد والتكوينات وفقًا لسياسات الأمان المنقولة.

خيارات لتطبيق سياسات الأمن كرمز


يفتح استخدام سياسات الأمان كرمز الكثير من الفرص لكل من أوامر DevOps / DevSecOps والمبرمجين. وهنا بعض الأمثلة.

تطوير واختبار قوائم الأمان في المرحلة الأولى من بناء التطبيقات


يمكن للمطورين استخدام CRD لجعل التطبيق أكثر أمانًا في المراحل الأولى من التطوير. يمكنهم في وقت واحد تقديم قوائم لنشر وتطبيق السياسات الأمنية.

بعد تجميع الصورة والتحقق تلقائيًا من الثغرات والموافقة من فريق DevOps ، يمكن لـ DevOps التحقق من كل من البيانين وتقديم توصيات إلى فريق التطوير من وجهة نظر أمنية. سيتم نشر التطبيقات الجديدة جنبًا إلى جنب مع السياسات الأمنية الفعالة من أول نشر إلى الإنتاج.



استخدام التحليل السلوكي لإنشاء سياسات الأمن


يمكن لفرق DevOps استخدام إمكانات التحليل السلوكي NeuVector في بيئات الاختبار لتطوير سياسات الأمان وإنشاء ملفات yaml مناسبة للاستخدام في NeuVector CRD.

يوضح الشكل التالي ، بدءًا من الزاوية اليمنى السفلية للرسم التخطيطي ، كيفية قيام فريق DevOps بنشر التطبيق في بيئة اختبار ، حيث يتم إجراء تحليل كامل لسلوك التطبيق وتشكيل ملفات تعريف الأمان للشبكة ونشاط الملف والعمليات.

يتم تصدير هذه القواعد وتمريرها إلى المطورين الذين يقومون بالتعديلات اللازمة ، و DevOps ، الذين يختبرونها قبل استخدامها في الإنتاج.



سياسات الأمن العالمية


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



باستخدام سياسات الأمان الشائعة وسياسات أمان التطبيق معًا ، يمكنك إنشاء إعدادات أمان معقدة ودقيقة تحتاجها مؤسستك.

فيما يلي مثال على حظر اتصالات ssh من الحاويات إلى الخارج:

- apiVersion: neuvector.com/v1
  kind: NvClusterSecurityRule
  metadata:
    name: containers
    namespace: default
  spec:
    egress: []
    file: []
    ingress:
    — Selector:
        criteria: []
        name: external
      action: deny
      applications:
      - SSH
      name: containers-ingress-0
      ports: tcp/22
    process:
    — action: deny
      name: ssh
      path: /bin/ssh
    target:    
      Selector:
        criteria:
        — key: container
          op: =
          value: '*'
        name: containers
      policymode: null
    version: v1  
 

ترحيل سياسات الأمن من الاختبار إلى الإنتاج


باستخدام NeuVector CRD ، يمكنك التحكم في الترحيل التلقائي لسياسات الأمان - كل أو فقط تلك التي تحتاجها - من بيئة الاختبار إلى بيئة الإنتاج. في وحدة تحكم NeuVector ، يمكنك تكوين وضع الخدمات الجديدة للكشف أو المراقبة أو الحماية.

يعني اختيار وضع المراقبة أو الحماية أن أي نشر أو تحديث للخدمة سيتضمن بالضرورة إعداد سياسات الأمان التي تحددها. وبالتالي ، ستدخل الخدمة في حالة نشطة فقط بعد تطبيق السياسات الأمنية.

باستخدام إمكانات Kubernetes CRD وسياسات الأمان كرمز ، سيتمكن مطورو البرامج و DevOps من تطبيق أتمتة سياسات الأمان للتطبيقات والتأكد من حماية التطبيقات بشكل أفضل في جميع المراحل: من بداية التطوير إلى العمل في الإنتاج.


All Articles