عن المشروع

# Nirmata Runtime لـ Kyverno Nirmata Runtime هي أداة أمان وقت التشغيل أصلية لـ Kubernetes تستخدم eBPF لمراقبة وفرض سلوك العمل على مستوى النواة. تعمل كـ DaemonSet على كل عقدة، وتربط برامج eBPF بالبودات المحددة بواسطة مورد مخصص `RuntimePolicy` على مستوى الكتلة. ## القدرات الأساسية يحكم `RuntimePolicy` خمسة أنواع من سلوك العمل: 1. **فتح الملفات** – الملفات التي يفتحها العملية 2. **تنفيذ الثنائيات** – الثنائيات التي ينفذها 3. **وجهات الشبكة** – أين يرسل حركة المرور 4. **بروتوكولات التطبيق** – البروتوكولات التي يتحدث بها 5. **استعلامات DNS** – أسماء النطاقات التي يحلها تُتخذ القرارات في النواة، لذا لا تكتمل العمليات المرفوضة أبدًا. هذا يكمل وحدات التحكم في القبول مثل Kyverno، التي تتحقق من مواصفات البود قبل البدء، من خلال فرض السلوك الفعلي وقت التشغيل. ## الميزات الرئيسية - **وضعا فرض أو مراقبة**: يمكن للسياسات حظر العمليات (`mode: enforce`) أو مجرد الإبلاغ عن النتائج (`mode: monitor`)، مع تكوين لكل سياسة. - **قواعد مدعومة بـ CEL**: تستخدم لغة التعبيرات الشائعة (CEL) مع مكتبات Kyverno، وتدعم القيم الحرفية والتعبيرات والمتغيرات القابلة لإعادة الاستخدام. - **رفض افتراضي مع قوائم السماح**: اضبط `deny.values: ["*"]` لتحويل السلوك إلى رفض الكل باستثناء المسموح. - **مخرجات أصلية لـ Kubernetes**: تُكتب النتائج ككائنات `Report` من OpenReports في مساحة اسم البود، مع شروط حالة لكل عقدة وعدادات Prometheus. - **نطاق المحدد**: يمكن للسياسات استهداف البودات ومساحات الأسماء عبر محددات التسمية، على مستوى الكتلة. - **إعادة تقييم دورية**: `evaluationInterval` يعيد تشغيل تعبيرات السياسة للحفاظ على تحديث قوائم الرفض المستوردة خارجيًا. ## بدء سريع التثبيت عبر Helm: ```bash helm install kyverno-runtime oci://ghcr.io/nirmata/charts/kyverno-runtime --namespace kyverno-runtime --create-namespace ``` مثال: حظر عنوان IP محدد لبود: ```yaml apiVersion: runtime.nirmata.io/v1alpha1 kind: RuntimePolicy metadata: name: block-address-sample spec: mode: enforce podSelector: matchLabels: app: egress-client behaviors: - network: deny: values: - "8.8.8.8" ``` ## القيود (قبل الإصدار 1.0) - حركة الخروج IPv4 فقط؛ لا تدعم عناوين IPv6 الحرفية. - يتطلب فرض فتح الملفات والتنفيذ تفعيل BPF-LSM في النواة (معامل التمهيد `lsm=`). - تُجمع ملاحظات الشبكة والبروتوكول والفتح والتنفيذ من عدادات eBPF، لذا قد تتأخر النتائج وتحمل أعدادًا بدلاً من الترتيب. تتدفق استعلامات DNS في الوقت الفعلي. - الاستثناءات غير مدعومة بعد. ## التوثيق يتضمن البدء السريع والمفاهيم والتثبيت ودعم المنصات (EKS وGKE وAKS وBottlerocket) والأمثلة واكتشاف الذكاء الاصطناعي الظل واستكشاف الأخطاء وإصلاحها ومراجع لـ CRD الخاص بـ RuntimePolicy وتعبيرات CEL والمقاييس. ## الترخيص رخصة Apache 2.0