Bottlerocket 1.8 байгаа бөгөөд энэ нь тусгаарлагдсан саванд суурилсан түгээлт юм

Тусгаарлагдсан савыг үр дүнтэй, аюулгүй ажиллуулах зорилгоор Amazon-ийн оролцоотойгоор боловсруулсан Bottlerocket 1.8.0 Linux түгээлтийн хувилбарыг хэвлэв. Түгээлтийн хэрэгсэл болон хяналтын бүрэлдэхүүн хэсгүүдийг Rust дээр бичсэн бөгөөд MIT болон Apache 2.0 лицензийн дагуу түгээдэг. Энэ нь Amazon ECS, VMware, AWS EKS Kubernetes кластерууд дээр Bottlerocket-ийг ажиллуулах, түүнчлэн контейнерт зориулсан янз бүрийн зохион байгуулалт, ажиллах цагийн хэрэгслийг ашиглах боломжийг олгодог захиалгат бүтээц, хувилбаруудыг бий болгохыг дэмждэг.

Энэхүү түгээлт нь Линукс цөмийг агуулсан атомын болон автоматаар шинэчлэгдсэн хуваагдашгүй системийн дүр төрх, зөвхөн контейнер ажиллуулахад шаардлагатай бүрэлдэхүүн хэсгүүдийг багтаасан хамгийн бага системийн орчныг бүрдүүлдэг. Энэ орчинд systemd системийн менежер, Glibc номын сан, Buildroot бүтээх хэрэгсэл, GRUB ачаалагч, муу сүлжээний тохируулагч, контейнерээс тусгаарлагдсан контейнер ажиллах хугацаа, Kubernetes контейнер зохион байгуулах платформ, aws-iam-authenticator, Amazon ECS агент орно. .

Контейнер зохион байгуулах хэрэгслүүд нь анхдагчаар идэвхжсэн, API болон AWS SSM Agent-ээр удирддаг тусдаа удирдлагын контейнерт ирдэг. Үндсэн зурагт командын бүрхүүл, SSH сервер, тайлбарласан хэл байхгүй (жишээлбэл, Python эсвэл Perl байхгүй) - захиргааны болон дибаг хийх хэрэгслийг тусдаа үйлчилгээний контейнерт шилжүүлсэн бөгөөд энэ нь анхдагчаар идэвхгүй болно.

Fedora CoreOS, CentOS/Red Hat Atomic Host зэрэг ижил төстэй түгээлтийн гол ялгаа нь системийн боломжит аюулаас хамгаалах хамгаалалтыг бэхжүүлэх, үйлдлийн системийн бүрэлдэхүүн хэсгүүдийн эмзэг байдлыг ашиглахад хүндрэл учруулах, контейнер тусгаарлалтыг нэмэгдүүлэх хүрээнд хамгийн их аюулгүй байдлыг хангахад гол анхаарлаа хандуулдаг. Контейнеруудыг Линуксийн цөмийн ердийн механизмууд - cgroups, namespaces, seccomp ашиглан бүтээдэг. Нэмэлт тусгаарлахын тулд түгээлт нь SELinux-ийг "хэрэгжүүлэх" горимд ашигладаг.

Үндэс хуваалтыг зөвхөн унших горимд суурилуулсан бөгөөд /etc тохиргоотой хуваалтыг tmpfs-д суулгаж, дахин эхлүүлсний дараа анхны төлөвт нь сэргээнэ. /etc/resolv.conf болон /etc/containerd/config.toml зэрэг /etc лавлах дахь файлуудыг шууд өөрчлөхийг дэмждэггүй - тохиргоог бүрмөсөн хадгалахын тулд та API ашиглах эсвэл функцийг тусдаа контейнерт шилжүүлэх хэрэгтэй. Үндэс хуваалтын бүрэн бүтэн байдлыг криптограф шалгахын тулд dm-verity модулийг ашигладаг бөгөөд блок төхөөрөмжийн түвшинд өгөгдлийг өөрчлөх оролдлого илэрвэл системийг дахин ачаална.

Системийн ихэнх бүрэлдэхүүн хэсгүүд нь Rust хэл дээр бичигдсэн байдаг бөгөөд санах ойг чөлөөлсний дараа санах ойн талбарыг хаяглах, тэг заагчийг ялгах, буфер хэт ачааллаас үүсэх эмзэг байдлаас зайлсхийхийн тулд санах ойд аюулгүй хэрэгслүүдээр хангадаг. Барилга барих үед "--enable-default-pie" болон "--enable-default-ssp" эмхэтгэлийн горимуудыг анхдагчаар ашиглан гүйцэтгэгдэх файлуудын хаягийн орон зайг санамсаргүй хуваарилах (PIE) болон канарын шошгыг орлуулах замаар стек халихаас хамгаалах боломжтой. C/C++ хэл дээр бичигдсэн багцуудын хувьд "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" болон "-fstack-clash" гэсэн тугуудыг нэмж оруулсан болно. орсон - хамгаалалт.

Шинэ хувилбарт:

  • Захиргааны болон хяналтын савны агуулгыг шинэчилсэн.
  • Тусгаарлагдсан савны ажиллах хугацааг containerd 1.6.x салбар болгон шинэчилсэн.
  • Сертификат дэлгүүрт өөрчлөлт оруулсны дараа савны ажлыг зохицуулах суурь процессуудыг дахин эхлүүлнэ.
  • Ачаалах тохиргооны хэсгээс цөмийн ачаалах параметрүүдийг тохируулах боломжийг олгодог.
  • dm-verity ашиглан үндсэн хуваалтын бүрэн бүтэн байдлыг шалгах үед хоосон блокуудыг үл тоомсорлохыг идэвхжүүлсэн.
  • /etc/hosts доторх хостын нэрийг статик байдлаар холбох боломжийг олгосон.
  • Netdog хэрэгслийг ашиглан сүлжээний тохиргоог үүсгэх боломжийг олгосон (gener-net-config командыг нэмсэн).
  • Kubernetes 1.23-ийн дэмжлэгтэй түгээлтийн шинэ хувилбаруудыг санал болгож байна. ConfigMapAndSecretChangeDetectionStrategy горимыг идэвхгүй болгосноор Кубернетес дэх подкуудыг эхлүүлэх хугацааг багасгасан. Шинэ kubelet тохиргоог нэмсэн: provayder-id болон podPidsLimit.
  • Amazon Elastic Container Service (Amazon ECS)-д зориулсан шинэ 'aws-ecs-1-nvidia' түгээлтийг санал болгосон бөгөөд NVIDIA драйверуудтай хамт ирдэг.
  • Microchip Smart Storage болон MegaRAID SAS хадгалах төхөөрөмжүүдийн дэмжлэгийг нэмсэн. Broadcom чип дээр суурилсан Ethernet картуудын өргөтгөсөн дэмжлэг.
  • Go болон Rust хэлний багц болон хамаарлын шинэчилсэн хувилбарууд, мөн гуравдагч талын программтай багцуудын хувилбарууд. Bottlerocket SDK нь 0.26.0 хувилбар болж шинэчлэгдсэн.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх