Bottlerocket 1.2 ning chiqarilishi, izolyatsiya qilingan konteynerlarga asoslangan tarqatish

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

  • Konteyner tasvirini ro'yxatga olish oynalari uchun qo'shimcha yordam.
  • O'z-o'zidan imzolangan sertifikatlardan foydalanish imkoniyati qo'shildi.
  • Xost nomini sozlash imkoniyati qo'shildi.
  • Ma'muriy konteynerning standart versiyasi yangilandi.
  • Kubelet uchun topologyManagerPolicy va topologyManagerScope sozlamalari qoʻshildi.
  • Zstd algoritmi yordamida yadroni siqish uchun qo'shilgan yordam.
  • Virtual mashinalarni VMware-ga OVA (Ochiq virtualizatsiya formati) formatida yuklash imkoniyati taqdim etilgan.
  • aws-k8s-1.21 tarqatish versiyasi Kubernetes 1.21-ni qo'llab-quvvatlash bilan yangilandi. aws-k8s-1.16-ni qo'llab-quvvatlash to'xtatildi.
  • Rust tili uchun yangilangan paket versiyalari va bog'liqliklari.

Manba: opennet.ru

a Izoh qo'shish