إصدار Bottlerocket 1.2 ، وهو توزيع يعتمد على الحاويات المعزولة

يتوفر إصدار توزيعة Linux Bottlerocket 1.2.0، والذي تم تطويره بمشاركة Amazon من أجل الإطلاق الفعال والآمن للحاويات المعزولة. أدوات التوزيع ومكونات التحكم مكتوبة بلغة Rust ويتم توزيعها بموجب تراخيص MIT وApache 2.0. وهو يدعم تشغيل Bottlerocket على مجموعات Amazon ECS وVMware وAWS EKS Kubernetes، بالإضافة إلى إنشاء إصدارات وإصدارات مخصصة تسمح باستخدام أدوات التنسيق ووقت التشغيل المتنوعة للحاويات.

يوفر التوزيع صورة نظام غير قابلة للتجزئة يتم تحديثها ذريًا وتلقائيًا، وتتضمن نواة Linux وبيئة نظام بسيطة، بما في ذلك المكونات الضرورية فقط لتشغيل الحاويات. تتضمن البيئة مدير نظام systemd، ومكتبة Glibc، وأداة بناء Buildroot، ومحمل التمهيد GRUB، ومكوِّن الشبكة الشريرة، ووقت تشغيل الحاوية للحاويات المعزولة، ومنصة تنسيق الحاويات Kubernetes، وأداة aws-iam-authenticator، وAmazon. وكيل ECS.

تأتي أدوات تنسيق الحاوية في حاوية إدارة منفصلة يتم تمكينها افتراضيًا وإدارتها من خلال واجهة برمجة التطبيقات (API) وAWS SSM Agent. لا تحتوي الصورة الأساسية على غلاف أوامر وخادم SSH واللغات المفسرة (على سبيل المثال، لا يوجد Python أو Perl) - يتم وضع الأدوات الإدارية وأدوات تصحيح الأخطاء في حاوية خدمة منفصلة، ​​والتي يتم تعطيلها افتراضيًا.

يتمثل الاختلاف الرئيسي عن التوزيعات المماثلة مثل Fedora CoreOS وCentOS/Red Hat Atomic Host في التركيز الأساسي على توفير أقصى قدر من الأمان في سياق تعزيز حماية النظام من التهديدات المحتملة، مما يزيد من صعوبة استغلال نقاط الضعف في مكونات نظام التشغيل وزيادة عزل الحاويات . يتم إنشاء الحاويات باستخدام آليات Linux kernel القياسية - مجموعات cgroups ومساحات الأسماء وseccomp. لمزيد من العزل، يستخدم التوزيع SELinux في وضع "الفرض".

يتم تثبيت القسم الجذر للقراءة فقط، ويتم تثبيت قسم الإعدادات /etc في tmpfs ويتم استعادته إلى حالته الأصلية بعد إعادة التشغيل. التعديل المباشر للملفات في الدليل /etc، مثل /etc/resolv.conf و/etc/containerd/config.toml، غير مدعوم - لحفظ الإعدادات بشكل دائم، يجب عليك استخدام واجهة برمجة التطبيقات (API) أو نقل الوظيفة إلى حاويات منفصلة. يتم استخدام وحدة dm-verity للتحقق من سلامة القسم الجذر بشكل مشفر، وإذا تم اكتشاف محاولة لتعديل البيانات على مستوى جهاز الكتلة، فسيتم إعادة تشغيل النظام.

تتم كتابة معظم مكونات النظام بلغة Rust، والتي توفر ميزات آمنة للذاكرة لتجنب الثغرات الأمنية الناجمة عن الوصول إلى الذاكرة بعد الفراغ، وإلغاء مرجعيات المؤشر الفارغ، وتجاوزات المخزن المؤقت. عند الإنشاء بشكل افتراضي، يتم استخدام أوضاع التجميع "-enable-default-pie" و"-enable-default-ssp" لتمكين التوزيع العشوائي لمساحة عنوان الملف القابل للتنفيذ (PIE) والحماية من تجاوزات المكدس من خلال استبدال Canary. بالنسبة للحزم المكتوبة بلغة C/C++، يتم إضافة العلامات "-Wall" و"-Werror=format-security" و"-Wp,-D_FORTIFY_SOURCE=2" و"-Wp,-D_GLIBCXX_ASSERTIONS" و"-fstack-clash" بالإضافة إلى ذلك تمكين - الحماية".

في الإصدار الجديد:

  • تمت إضافة دعم لمرايا تسجيل صورة الحاوية.
  • تمت إضافة القدرة على استخدام الشهادات الموقعة ذاتيًا.
  • تمت إضافة خيار لتكوين اسم المضيف.
  • تم تحديث الإصدار الافتراضي للحاوية الإدارية.
  • تمت إضافة إعدادات topologyManagerPolicy وtopologyManagerScope لـ kubelet.
  • تمت إضافة دعم لضغط kernel باستخدام خوارزمية zstd.
  • يتم توفير القدرة على تحميل الأجهزة الافتراضية إلى برنامج VMware بتنسيق OVA (تنسيق المحاكاة الافتراضية المفتوحة).
  • تم تحديث إصدار التوزيع aws-k8s-1.21 بدعم Kubernetes 1.21. تم إيقاف دعم aws-k8s-1.16.
  • تحديث إصدارات الحزمة وتبعياتها للغة Rust.

المصدر: opennet.ru

إضافة تعليق