ایمیزون کمپنی خصوصی کا پہلا اہم مسئلہ Linux-تقسیم , الگ تھلگ کنٹینرز کو موثر اور محفوظ طریقے سے چلانے کے لیے ڈیزائن کیا گیا ہے۔ ڈسٹری بیوشن کے ٹولز اور کنٹرول کے اجزاء Rust اور میں لکھے گئے ہیں۔ MIT اور Apache 2.0 لائسنس کے تحت۔ یہ پروجیکٹ GitHub پر تیار کیا جا رہا ہے اور کمیونٹی ممبران کی شرکت کے لیے دستیاب ہے۔ سسٹم کی تعیناتی کی تصویر x86_64 اور Aarch64 آرکیٹیکچرز کے لیے بنائی گئی ہے۔ OS کو Amazon ECS اور AWS EKS Kubernetes کلسٹرز پر چلانے کے لیے موافق بنایا گیا ہے۔ آپ کی اپنی اسمبلیاں اور ایڈیشن بنانے کے لیے ٹولز، جو دوسرے آرکیسٹریشن ٹولز، دانا اور کنٹینرز کے لیے رن ٹائم استعمال کر سکتے ہیں۔
تقسیم دانا فراہم کرتی ہے۔ Linux اور کم سے کم سسٹم ماحول، بشمول کنٹینرز چلانے کے لیے ضروری اجزاء۔ پروجیکٹ میں استعمال ہونے والے پیکجز میں سسٹمڈ سسٹم مینیجر، Glibc لائبریری، اور بلڈ ٹولز شامل ہیں۔
بلڈروٹ، GRUB بوٹ لوڈر، نیٹ ورک کنفیگریٹر الگ تھلگ کنٹینرز کے لیے رن ٹائم , Kubernetes کنٹینر آرکیسٹریشن پلیٹ فارم، aws-iam-authenticator، اور Amazon ECS ایجنٹ۔
تقسیم کو جوہری طور پر اپ ڈیٹ کیا جاتا ہے اور اسے ناقابل تقسیم نظام کی تصویر کی شکل میں فراہم کیا جاتا ہے۔ سسٹم کے لیے دو ڈسک پارٹیشنز مختص کیے گئے ہیں، جن میں سے ایک ایکٹو سسٹم پر مشتمل ہے، اور اپ ڈیٹ کو دوسرے میں کاپی کیا گیا ہے۔ اپ ڈیٹ کے تعینات ہونے کے بعد، دوسرا پارٹیشن فعال ہو جاتا ہے، اور پہلے میں، اگلی اپڈیٹ آنے تک، سسٹم کا پچھلا ورژن محفوظ ہو جاتا ہے، جس میں مسائل پیدا ہونے کی صورت میں آپ واپس جا سکتے ہیں۔ اپ ڈیٹس ایڈمنسٹریٹر کی مداخلت کے بغیر خود بخود انسٹال ہو جاتی ہیں۔
اسی طرح کی تقسیم جیسے Fedora CoreOS سے کلیدی فرق ہے۔ CentOS/Red Hat Atomic Host بنیادی طور پر فراہم کرنے پر مرکوز ہے۔ ممکنہ خطرات کے خلاف نظام کے تحفظ کو مضبوط بنانے، OS کے اجزاء میں کمزوریوں کے استحصال کو پیچیدہ بنانے، اور کنٹینر کی تنہائی کو بڑھانے کے تناظر میں۔ کنٹینرز معیاری کرنل میکانزم کا استعمال کرتے ہوئے بنائے جاتے ہیں۔ Linux - cgroups، namespaces، اور seccomp۔ اضافی تنہائی کے لیے، تقسیم SE کا استعمال کرتی ہے۔Linux "انفورسنگ" موڈ میں، اور ماڈیول کو روٹ پارٹیشن کی سالمیت کی کرپٹوگرافک تصدیق کے لیے استعمال کیا جاتا ہے۔ . اگر بلاک ڈیوائس کی سطح پر ڈیٹا میں ترمیم کرنے کی کوشش کا پتہ چل جاتا ہے، تو سسٹم دوبارہ شروع ہوجاتا ہے۔
روٹ پارٹیشن صرف پڑھنے کے لیے نصب کیا جاتا ہے، اور /etc سیٹنگز پارٹیشن کو tmpfs میں نصب کیا جاتا ہے اور دوبارہ شروع کرنے کے بعد اس کی اصل حالت میں بحال کیا جاتا ہے۔ /etc ڈائرکٹری میں فائلوں کی براہ راست ترمیم، جیسے /etc/resolv.conf اور /etc/containerd/config.toml، تعاون یافتہ نہیں ہے - ترتیبات کو مستقل طور پر محفوظ کرنے کے لیے، آپ کو API کا استعمال کرنا ہوگا یا فعالیت کو علیحدہ کنٹینرز میں منتقل کرنا ہوگا۔
سسٹم کے زیادہ تر اجزاء Rust میں لکھے گئے ہیں، جو میموری کے لیے محفوظ خصوصیات فراہم کرتا ہے تاکہ فری میموری تک رسائی، null pointer dereferences، اور buffer overruns کی وجہ سے پیدا ہونے والے خطرات سے بچا جا سکے۔ ڈیفالٹ کے ذریعے تعمیر کرتے وقت، "--enable-default-pie" اور "--enable-default-ssp" تالیف کے طریقوں کا استعمال قابل عمل فائلوں کے ایڈریس اسپیس کو بے ترتیب بنانے کے لیے کیا جاتا ہے () اور کینری متبادل کے ذریعے اسٹیک اوور فلو تحفظ۔
C/C++ میں لکھے گئے پیکیجز کے لیے، اضافی جھنڈے شامل ہیں۔
"-وال"، "-Werror=format-security"، "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" اور "-fstack-clash-protection"۔
کنٹینر آرکیسٹریشن کے اوزار الگ سے فراہم کیے جاتے ہیں۔ ، جو بطور ڈیفالٹ فعال ہے اور اس کے ذریعے کنٹرول کیا جاتا ہے۔ اور AWS SSM ایجنٹ۔ بیس امیج میں کمانڈ شیل، SSH سرور اور تشریح شدہ زبانوں کی کمی ہے (مثال کے طور پر، کوئی ازگر یا پرل نہیں) - انتظامی ٹولز اور ڈیبگنگ ٹولز ، جو بطور ڈیفالٹ غیر فعال ہے۔
ماخذ: opennet.ru
