Bottlerocket 1.7 ning chiqarilishi, izolyatsiya qilingan konteynerlarga asoslangan tarqatish

Izolyatsiya qilingan konteynerlarni samarali va xavfsiz ishga tushirish uchun Amazon ishtirokida ishlab chiqilgan Linux tarqatish Bottlerocket 1.7.0 versiyasi nashr etildi. Tarqatish vositalari va boshqaruv komponentlari Rust-da yozilgan va MIT va Apache 2.0 litsenziyalari ostida tarqatiladi. U Amazon ECS, VMware va AWS EKS Kubernetes klasterlarida Bottlerocket-ni ishga tushirishni qo'llab-quvvatlaydi, shuningdek, konteynerlar uchun turli xil orkestratsiya va ish vaqti vositalaridan foydalanishga imkon beruvchi maxsus tuzilmalar va nashrlarni yaratadi.

Tarqatish Linux yadrosi va minimal tizim muhitini o'z ichiga olgan atomik va avtomatik ravishda yangilanadigan bo'linmas tizim tasvirini taqdim etadi, faqat konteynerlarni ishlatish uchun zarur bo'lgan komponentlarni o'z ichiga oladi. Atrof-muhitga tizimli tizim menejeri, Glibc kutubxonasi, Buildroot qurish vositasi, GRUB yuklash moslamasi, yomon tarmoq konfiguratori, izolyatsiyalangan konteynerlar uchun konteyner ish vaqti, Kubernetes konteyner orkestr platformasi, aws-iam-authenticator va Amazon kiradi. ECS agenti.

Konteynerlarni boshqarish vositalari sukut bo'yicha yoqilgan va API va AWS SSM Agent orqali boshqariladigan alohida boshqaruv konteynerida keladi. Asosiy tasvirda buyruq qobig'i, SSH serveri va talqin qilingan tillar yo'q (masalan, Python yoki Perl yo'q) - ma'muriy vositalar va disk raskadrovka vositalari alohida xizmat konteyneriga joylashtirilgan, ular sukut bo'yicha o'chirib qo'yilgan.

Fedora CoreOS, CentOS/Red Hat Atomic Host kabi shunga o'xshash distribyutorlardan asosiy farqi tizimning mumkin bo'lgan tahdidlardan himoyasini kuchaytirish kontekstida maksimal xavfsizlikni ta'minlash, OT komponentlaridagi zaifliklardan foydalanishni qiyinlashtirish va konteyner izolyatsiyasini oshirishga qaratilgan asosiy e'tibordir. . Konteynerlar standart Linux yadro mexanizmlari - guruhlar, nomlar va seccomp yordamida yaratiladi. Qo'shimcha izolyatsiya uchun tarqatish SELinux-dan "majburiy" rejimida foydalanadi.

Ildiz bo'limi faqat o'qish uchun o'rnatiladi va /etc sozlamalari bo'limi tmpfs-ga o'rnatiladi va qayta ishga tushirilgandan so'ng asl holatiga tiklanadi. /etc/resolv.conf va /etc/containerd/config.toml kabi /etc katalogidagi fayllarni to'g'ridan-to'g'ri o'zgartirish qo'llab-quvvatlanmaydi - sozlamalarni doimiy saqlash uchun siz API dan foydalanishingiz yoki funksionallikni alohida konteynerlarga ko'chirishingiz kerak. dm-verity moduli ildiz bo'limining yaxlitligini kriptografik tekshirish uchun ishlatiladi va blokli qurilma darajasida ma'lumotlarni o'zgartirishga urinish aniqlansa, tizim qayta ishga tushadi.

Aksariyat tizim komponentlari Rust-da yozilgan bo'lib, u xotiradan bo'sh vaqtdan keyin foydalanish, null ko'rsatkichni yo'qotish va buferni haddan tashqari oshirib yuborish natijasida yuzaga keladigan zaifliklarni oldini olish uchun xotira xavfsizligini ta'minlaydi. Sukut bo'yicha qurishda "-enable-default-pie" va "-enable-default-ssp" kompilyatsiya rejimlari bajariladigan fayl manzil maydonini (PIE) tasodifiylashtirishni va kanareykalarni almashtirish orqali stekning to'lib ketishidan himoya qilish uchun ishlatiladi. C/C++ da yozilgan paketlar uchun “-Wall”, “-Werror=format-security”, “-Wp,-D_FORTIFY_SOURCE=2”, “-Wp,-D_GLIBCXX_ASSERTIONS” va “-fstack-clash” bayroqlari qo'shimcha ravishda hisoblanadi. yoqilgan - himoya".

Yangi nashrda:

  • RPM paketlarini o'rnatishda JSON formatidagi dasturlar ro'yxatini yaratish va mavjud paketlar haqida ma'lumot olish uchun uni /var/lib/bottlerocket/inventory/application.json fayli sifatida xost konteyneriga o'rnatish mumkin.
  • “Admin” va “nazorat” konteynerlari yangilandi.
  • Go va Rust tillari uchun yangilangan paket versiyalari va bog'liqliklar.
  • Uchinchi tomon dasturlari bilan paketlarning yangilangan versiyalari.
  • Kmod-5.10-nvidia uchun tmpfilesd konfiguratsiya muammolari hal qilindi.
  • Tuftoolni o'rnatishda, qaramlik versiyalari bog'lanadi.

Manba: opennet.ru

a Izoh qo'shish