آمازون اولین شماره مهم نشریه تخصصی Linuxتوزیع طراحی شده برای اجرای کارآمد و ایمن ظروف ایزوله. ابزارهای توزیع و اجزای کنترل به زبان Rust و نوشته شده است تحت مجوز MIT و Apache 2.0. این پروژه در GitHub در حال توسعه است و برای مشارکت اعضای جامعه در دسترس است. تصویر استقرار سیستم برای معماری های x86_64 و Aarch64 ایجاد می شود. این سیستم عامل برای اجرا در خوشه های Amazon ECS و AWS EKS Kubernetes سازگار شده است. ابزارهایی برای ایجاد مجموعهها و نسخههای خود، که میتوانند از سایر ابزارهای ارکستراسیون، هستهها و زمان اجرا برای کانتینرها استفاده کنند.
توزیع، هسته را فراهم میکند. Linux و یک محیط سیستم حداقلی، شامل تنها اجزای لازم برای اجرای کانتینرها. بستههای مورد استفاده در پروژه شامل مدیر سیستم systemd، کتابخانه Glibc و ابزارهای ساخت است.
Buildroot، بوت لودر GRUB، پیکربندی شبکه ، زمان اجرا برای ظروف ایزوله ، پلت فرم ارکستراسیون کانتینر Kubernetes، aws-iam-authenticator، و عامل ECS آمازون.
توزیع به صورت اتمی به روز می شود و در قالب یک تصویر سیستمی تقسیم ناپذیر ارائه می شود. دو پارتیشن دیسک برای سیستم اختصاص داده شده است که یکی از آنها شامل سیستم فعال است و به روز رسانی در دومی کپی می شود. پس از استقرار آپدیت، پارتیشن دوم فعال می شود و در پارتیشن اول تا رسیدن آپدیت بعدی، نسخه قبلی سیستم ذخیره می شود که در صورت بروز مشکل می توانید به آن برگردید. به روز رسانی ها به طور خودکار و بدون دخالت مدیر نصب می شوند.
تفاوت کلیدی آن با توزیعهای مشابه مانند Fedora CoreOS این است که CentOS/Red Hat Atomic Host در درجه اول بر ارائه خدمات متمرکز است در زمینه تقویت حفاظت سیستم در برابر تهدیدات بالقوه، پیچیدهتر کردن سوءاستفاده از آسیبپذیریها در اجزای سیستم عامل و افزایش ایزولهسازی کانتینرها. کانتینرها با استفاده از مکانیسمهای استاندارد هسته ایجاد میشوند. Linux — cgroups، namespaces و seccomp. برای جداسازی بیشتر، این توزیع از SE استفاده میکند.Linux در حالت "اجرایی"، و این ماژول برای تأیید رمزنگاری یکپارچگی پارتیشن ریشه استفاده میشود. . اگر تلاشی برای تغییر داده ها در سطح دستگاه بلوک شناسایی شود، سیستم راه اندازی مجدد می شود.
پارتیشن ریشه فقط خواندنی است و پارتیشن تنظیمات /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 Agent. تصویر پایه فاقد پوسته فرمان، سرور SSH و زبان های تفسیر شده است (به عنوان مثال، بدون پایتون یا پرل) - ابزارهای مدیریتی و ابزارهای اشکال زدایی در ، که به طور پیش فرض غیرفعال است.
منبع: opennet.ru
