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

يتوفر إصدار توزيعة Linux Bottlerocket 1.1.0، والذي تم تطويره بمشاركة Amazon من أجل الإطلاق الفعال والآمن للحاويات المعزولة. أدوات التوزيع ومكونات التحكم مكتوبة بلغة Rust ويتم توزيعها بموجب تراخيص MIT وApache 2.0. وهو يدعم تشغيل Bottlerocket في مجموعات Amazon ECS و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" بالإضافة إلى ذلك تمكين - الحماية".

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

  • تم اقتراح خيارين جديدين للتوزيع aws-k8s-1.20 وvmware-k8s-1.20 مع دعم Kubernetes 1.20. تستخدم هذه المتغيرات، بالإضافة إلى الإصدار المحدث aws-ecs-1، إصدار Linux kernel 5.10 الجديد. يتم ضبط وضع التأمين على "التكامل" افتراضيًا (يتم حظر الإمكانيات التي تسمح بإجراء تغييرات على النواة قيد التشغيل من مساحة المستخدم). تم إيقاف دعم متغير aws-k8s-1.15 المستند إلى Kubernetes 1.15.
  • يدعم Amazon ECS وضع شبكة awsvpc، والذي يسمح لك بتخصيص واجهات شبكة منفصلة وعناوين IP داخلية لكل مهمة.
  • تمت إضافة إعدادات للتحكم في معلمات Kubernetes المختلفة، بما في ذلك QPS وحدود التجمع والقدرة على الاتصال بموفري الخدمات السحابية بخلاف AWS.
  • توفر حاوية التمهيد تقييدًا للوصول إلى بيانات المستخدم باستخدام SELinux.
  • تمت إضافة الأداة المساعدة لتغيير الحجم 2fs.

المصدر: opennet.ru

إضافة تعليق