Bottlerocket 1.8 mavjud, tarqatish izolyatsiya qilingan konteynerlarga asoslangan

Izolyatsiya qilingan konteynerlarni samarali va xavfsiz ishga tushirish uchun Amazon ishtirokida ishlab chiqilgan Linux tarqatish Bottlerocket 1.8.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:

  • Ma'muriy va nazorat konteynerlarining tarkibi yangilandi.
  • Izolyatsiya qilingan konteynerlar uchun ish vaqti containerd 1.6.x filialiga yangilandi.
  • Sertifikatlar do'konidagi o'zgarishlardan so'ng konteynerlarning ishlashini muvofiqlashtiruvchi fon jarayonlari qayta ishga tushirilishini ta'minlaydi.
  • "Boot Configuration" bo'limi orqali yadro yuklash parametrlarini o'rnatish mumkin.
  • dm-verity yordamida ildiz bo'limining yaxlitligini kuzatishda bo'sh bloklarga e'tibor bermaslik yoqilgan.
  • /etc/hosts-da xost nomlarini statik ravishda bog'lash imkoniyati taqdim etilgan.
  • Netdog yordam dasturi yordamida tarmoq konfiguratsiyasini yaratish imkoniyati taqdim etildi (gener-net-config buyrug'i qo'shildi).
  • Kubernetes 1.23-ni qo'llab-quvvatlaydigan yangi tarqatish variantlari taklif qilindi. ConfigMapAndSecretChangeDetectionStrategy rejimini oʻchirib qoʻyish orqali Kubernetesdagi podslarni ishga tushirish vaqti qisqartirildi. Yangi kubelet sozlamalari qo'shildi: provayder identifikatori va podPidsLimit.
  • NVIDIA drayverlari bilan ta'minlangan Amazon Elastic Container Service (Amazon ECS) uchun "aws-ecs-1-nvidia" tarqatish to'plamining yangi versiyasi taklif qilindi.
  • Microchip Smart Storage va MegaRAID SAS saqlash qurilmalari uchun qo'shimcha yordam. Broadcom chiplarida Ethernet kartalarini qo‘llab-quvvatlash kengaytirildi.
  • Yangilangan paket versiyalari va Go va Rust tillari uchun bog'liqliklar, shuningdek, uchinchi tomon dasturlari bilan paketlarning versiyalari. Bottlerocket SDK 0.26.0 versiyasiga yangilandi.

Manba: opennet.ru

a Izoh qo'shish