Paglabas ng Bottlerocket 1.3, isang pamamahagi batay sa mga nakahiwalay na lalagyan

Ang isyu ay nailathala na LinuxAng Bottlerocket 1.3.0, isang distribusyon na binuo sa pakikipagtulungan ng Amazon, ay dinisenyo upang mahusay at ligtas na magpatakbo ng mga nakahiwalay na container. Ang mga bahagi ng tooling at control ng distribusyon ay nakasulat sa Rust at lisensyado sa ilalim ng mga lisensya ng MIT at Apache 2.0. Ang Bottlerocket ay tumatakbo sa mga cluster ng Amazon ECS, VMware, at AWS EKS Kubernetes, pati na rin ang sumusuporta sa mga custom build at edisyon na sumusuporta sa paggamit ng iba't ibang container orchestration at runtime tool.

Ang distribusyon ay nagbibigay ng isang atomikong at awtomatikong na-update na hindi mahahati na imahe ng sistema, kabilang ang kernel Linux at isang minimal na kapaligiran ng sistema, kabilang lamang ang mga bahaging kinakailangan para sa pagpapatakbo ng mga container. Kasama sa kapaligirang ito ang systemd system manager, ang Glibc library, ang Buildroot build toolchain, ang GRUB bootloader, ang wicked network configurator, ang containerd runtime para sa mga isolated container, ang Kubernetes container orchestration platform, ang aws-iam-authenticator authenticator, at ang Amazon ECS agent.

Ang mga container orchestration tool ay inihahatid sa isang hiwalay na management container, na naka-enable bilang default at pinamamahalaan sa pamamagitan ng API at AWS SSM Agent. Ang base image ay walang kasamang command shell. server Ang SSH at mga interpreted language (hal. walang Python o Perl) - ang mga admin at debugging tool ay matatagpuan sa isang hiwalay na service container, na naka-disable bilang default.

Ang pangunahing pagkakaiba mula sa mga katulad na distribusyon tulad ng Fedora CoreOS ay CentOSPangunahing nakatuon ang Red Hat Atomic Host sa pagbibigay ng pinakamataas na seguridad sa pamamagitan ng pagpapahusay ng proteksyon ng sistema laban sa mga potensyal na banta, pagpapahirap sa pagsasamantala ng mga kahinaan sa mga bahagi ng OS, at pagpapataas ng paghihiwalay ng container. Ang mga container ay nililikha gamit ang mga mekanismo ng katutubong kernel. Linux — mga cgroup, namespace, at seccomp. Para sa karagdagang paghihiwalay, ginagamit ng distribusyon ang SELinux nasa "pagpapatupad" na mode.

Ang root partition ay naka-mount sa read-only na mode, at ang partition na may mga setting ng /etc ay naka-mount sa tmpfs at naibalik sa orihinal nitong estado pagkatapos ng restart. Ang direktang pagbabago ng mga file sa direktoryo ng /etc, gaya ng /etc/resolv.conf at /etc/containerd/config.toml, ay hindi suportado - upang permanenteng i-save ang mga setting, dapat mong gamitin ang API o ilipat ang functionality sa hiwalay na mga container. Para sa cryptographic na pag-verify ng integridad ng root partition, ginagamit ang dm-verity module, at kung may nakitang pagtatangkang baguhin ang data sa block device level, magre-reboot ang system.

Karamihan sa mga bahagi ng system ay nakasulat sa Rust, na nagbibigay ng mga tool na ligtas sa memorya upang maiwasan ang mga kahinaan na dulot ng pagtugon sa isang lugar ng memorya pagkatapos itong mapalaya, pag-derefer ng mga null pointer, at pag-overrun ng buffer. Kapag bumubuo, ang mga compilation mode na "--enable-default-pie" at "--enable-default-ssp" ay ginagamit bilang default para paganahin ang executable address space randomization (PIE) at proteksyon laban sa mga stack overflow sa pamamagitan ng canary label substitution. Para sa mga package na nakasulat sa C/C++, ang mga flag na "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" at "-fstack-clash" kasama -proteksyon.

Sa bagong release:

  • Inayos ang mga kahinaan sa Docker at mga runtime containerd tools (CVE-2021-41089, CVE-2021-41091, CVE-2021-41092, CVE-2021-41103) na may kaugnayan sa maling pagtatakda ng mga karapatan sa pag-access, na nagpapahintulot sa mga walang pribilehiyong user na lumampas sa base directory at magpatakbo ng mga external program.
  • Idinagdag sa kubelet at pluto Suporta sa IPv6.
  • Ibinigay na ang kakayahang i-restart ang isang lalagyan pagkatapos baguhin ang mga setting nito.
  • Na-update na ang eni-max-pods package para suportahan ang mga Amazon EC2 M6i instances.
  • Sinusuportahan na ngayon ng open-vm-tools ang mga device filter, batay sa Cilium toolkit.
  • Para sa platform na x86_64, ipinatupad ang isang hybrid boot mode (na may suporta sa EFI at BIOS).
  • Mga na-update na bersyon ng package at dependency para sa Rust na wika.
  • Itinigil na ang suporta para sa variant ng distribusyon ng aws-k8s-1.17 na nakabatay sa Kubernetes 1.17. Inirerekomendang gamitin ang variant ng aws-k8s-1.21, na sumusuporta sa Kubernetes 1.21. Ginagamit ng mga variant ng k8s ang mga setting ng cgroup runtime.slice at system.slice.

Pinagmulan: opennet.ru

Bumili ng maaasahang pagho-host para sa mga site na may proteksyon ng DDoS, mga server ng VPS VDS 🔥 Bumili ng maaasahang website hosting na may proteksyon ng DDoS, VPS VDS servers | ProHoster