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

Тусгаарлагдсан савыг үр ашигтай, найдвартай хөөргөх зорилгоор Амазон компанийн оролцоотойгоор боловсруулсан Linux түгээлтийн Bottlerocket 1.1.0 хувилбар бэлэн боллоо. Түгээлтийн хэрэгслүүд болон хяналтын бүрэлдэхүүн хэсгүүд нь Rust дээр бичигдсэн бөгөөд MIT болон Apache 2.0 лицензийн дагуу түгээгддэг. Энэ нь Amazon ECS болон 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" гэсэн тугуудыг нэмж оруулсан болно. орсон - хамгаалалт.

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

  • Kubernetes 8-ийг дэмждэг aws-k1.20s-8 болон vmware-k1.20s-1.20 түгээлтийн хоёр шинэ хувилбарыг санал болгосон. Эдгээр хувилбарууд, түүнчлэн aws-ecs-1 шинэчилсэн хувилбар нь Linux цөмийн шинэ 5.10 хувилбарыг ашигладаг. Түгжих горимыг анхдагчаар "бүрэн бүтэн" гэж тохируулсан (хэрэглэгчийн орон зайгаас ажиллаж байгаа цөмд өөрчлөлт оруулах боломжуудыг хаасан). Kubernetes 8 дээр суурилсан aws-k1.15s-1.15 хувилбарын дэмжлэгийг зогсоосон.
  • Amazon ECS нь awsvpc сүлжээний горимыг дэмждэг бөгөөд энэ нь танд тус тусад нь сүлжээний интерфэйс болон дотоод IP хаягийг даалгавар бүрт хуваарилах боломжийг олгодог.
  • QPS, усан сангийн хязгаарлалт, AWS-ээс бусад үүлэн үйлчилгээ үзүүлэгчтэй холбогдох чадвар зэрэг Kubernetes-ийн янз бүрийн параметрүүдийг хянах тохиргоог нэмсэн.
  • Bootstrap контейнер нь SELinux ашиглан хэрэглэгчийн өгөгдөлд хандах хандалтыг хязгаарладаг.
  • resize2fs хэрэглүүрийг нэмсэн.

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

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