Тусгаарлагдсан саванд суурилсан түгээлт болох Bottlerocket 1.2-г гаргалаа

Тусгаарлагдсан савыг үр ашигтай, найдвартай ажиллуулах зорилгоор Амазон компанийн оролцоотойгоор бүтээгдсэн Linux түгээлтийн Bottlerocket 1.2.0 хувилбар бэлэн боллоо. Түгээлтийн хэрэгслүүд болон хяналтын бүрэлдэхүүн хэсгүүд нь 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" гэсэн тугуудыг нэмж оруулсан болно. орсон - хамгаалалт.

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

  • Контейнерын зургийн бүртгэлийн толин тусгалуудад зориулсан дэмжлэг нэмэгдсэн.
  • Өөрөө гарын үсэг зурсан гэрчилгээг ашиглах чадварыг нэмсэн.
  • Хост нэрийг тохируулах сонголтыг нэмсэн.
  • Захиргааны контейнерийн өгөгдмөл хувилбар шинэчлэгдсэн.
  • Kubelet-д topologyManagerPolicy болон topologyManagerScope тохиргоог нэмсэн.
  • Zstd алгоритмыг ашиглан цөмийн шахалтын дэмжлэгийг нэмсэн.
  • Виртуал машинуудыг OVA (Нээлттэй виртуалчлалын формат) форматаар VMware руу ачаалах боломжийг олгодог.
  • Түгээх хувилбар aws-k8s-1.21 нь Kubernetes 1.21-ийн дэмжлэгтэйгээр шинэчлэгдсэн. aws-k8s-1.16-г дэмжихээ больсон.
  • Rust хэлний багцын хувилбарууд болон хамаарлыг шинэчилсэн.

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

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