شركة أمازون первый значительный выпуск специализированного Linux-توزيع ، مصممة لتشغيل الحاويات المعزولة بكفاءة وأمان. أدوات التوزيع ومكونات التحكم مكتوبة بلغة Rust و بموجب تراخيص MIT وApache 2.0. يتم تطوير المشروع على GitHub وهو متاح للمشاركة من قبل أفراد المجتمع. يتم إنشاء صورة نشر النظام لمعماريتي x86_64 وAarch64. تم تكييف نظام التشغيل ليعمل على مجموعات Amazon ECS وAWS EKS Kubernetes. أدوات لإنشاء التجميعات والإصدارات الخاصة بك، والتي يمكنها استخدام أدوات التنسيق والنوى ووقت التشغيل للحاويات الأخرى.
Дистрибутив предоставляет ядро Linux и минимальное системное окружение, включающие только компоненты, необходимые для запуска контейнеров. Среди задействованных в проекте пакетов отмечаются системный менеджер systemd, библиотека Glibc, сборочный инструментарий
Buildroot، محمل الإقلاع GRUB، مكون الشبكة وقت التشغيل للحاويات المعزولة ومنصة تنسيق الحاويات Kubernetes وaws-iam-authenticator ووكيل Amazon ECS.
يتم تحديث التوزيع ذريًا ويتم تسليمه على شكل صورة نظام غير قابلة للتجزئة. يتم تخصيص قسمين من القرص للنظام، يحتوي أحدهما على النظام النشط، ويتم نسخ التحديث إلى الثاني. بعد نشر التحديث، يصبح القسم الثاني نشطا، وفي الأول، حتى وصول التحديث التالي، يتم حفظ الإصدار السابق من النظام، والذي يمكنك التراجع عنه في حالة ظهور مشاكل. يتم تثبيت التحديثات تلقائيًا دون تدخل المسؤول.
الفرق الرئيسي عن التوزيعات المماثلة مثل فيدورا كور أو إس هو CentOS/Red Hat Atomic Host является первичная ориентация на обеспечение в контексте усиления защиты системы от возможных угроз, усложнения эксплуатации уязвимостей в компонентах ОС и повышения изоляции контейнеров. Контейнеры создаются при помощи штатных механизмов ядра Linux — مجموعات التحكم، ومساحات الأسماء، و seccomp. ولزيادة العزل، يستخدم التوزيع SELinux в режиме «enforcing», а для криптографической верификации целостности корневого раздела задействован модуль . إذا تم اكتشاف محاولة لتعديل البيانات على مستوى جهاز الحظر، فسيتم إعادة تشغيل النظام.
يتم تثبيت القسم الجذر للقراءة فقط، ويتم تثبيت قسم الإعدادات /etc في tmpfs ويتم استعادته إلى حالته الأصلية بعد إعادة التشغيل. التعديل المباشر للملفات في الدليل /etc، مثل /etc/resolv.conf و/etc/containerd/config.toml، غير مدعوم - لحفظ الإعدادات بشكل دائم، يجب عليك استخدام واجهة برمجة التطبيقات (API) أو نقل الوظيفة إلى حاويات منفصلة.
تتم كتابة معظم مكونات النظام بلغة Rust، والتي توفر ميزات آمنة للذاكرة لتجنب الثغرات الأمنية الناجمة عن الوصول إلى الذاكرة بعد الفراغ، وإلغاء مرجعيات المؤشر الفارغ، وتجاوزات المخزن المؤقت. عند الإنشاء بشكل افتراضي، يتم استخدام أوضاع التجميع "--enable-default-pie" و"--enable-default-ssp" لتمكين التوزيع العشوائي لمساحة العنوان للملفات القابلة للتنفيذ () وحماية تجاوز سعة المكدس عبر استبدال الكناري.
بالنسبة للحزم المكتوبة بلغة C/C++، يتم تضمين علامات إضافية
"-Wall"، "-Werror=format-security"، "-Wp,-D_FORTIFY_SOURCE=2"، "-Wp,-D_GLIBCXX_ASSERTIONS" و"-fstack-clash-protection".
يتم توفير أدوات تنسيق الحاوية بشكل منفصل ، والذي يتم تمكينه افتراضيًا ويتم التحكم فيه عبر ووكيل AWS SSM. لا تحتوي الصورة الأساسية على واجهة أوامر وخادم SSH واللغات المفسرة (على سبيل المثال، لا يوجد Python أو Perl) - توجد الأدوات الإدارية وأدوات تصحيح الأخطاء في ، والذي يتم تعطيله بشكل افتراضي.
المصدر: opennet.ru
