Gipagawas sa Amazon ang Bottlerocket 1.0.0, ang pag-apod-apod sa Linux base sa nahilit nga mga sudlanan

Kompanya sa Amazon gipresentar una nga hinungdanon nga pagpagawas sa usa ka gipahinungod nga pag-apod-apod sa Linux Bottlerocket 1.0.0, gidesinyo sa pagpadagan sa nahilit nga mga sudlanan sa episyente ug luwas. Ang mga himan sa pag-apod-apod ug kontrol nga mga sangkap gisulat sa Rust ug pagkaylap ubos sa MIT ug Apache 2.0 nga mga lisensya. Ang proyekto gihimo sa GitHub ug magamit alang sa pag-apil sa mga miyembro sa komunidad. Ang sistema sa deployment nga imahe gihimo alang sa x86_64 ug Aarch64 nga mga arkitektura. Ang OS gipahiangay aron modagan sa Amazon ECS ug AWS EKS Kubernetes clusters. Gihatagan mga himan alang sa paghimo sa imong kaugalingon nga mga asembliya ug mga edisyon, nga makagamit sa ubang mga himan sa orkestrasyon, mga kernel ug oras sa pagdagan alang sa mga sudlanan.

Ang pag-apod-apod naghatag sa Linux kernel ug usa ka gamay nga sistema sa palibot, lakip lamang ang mga sangkap nga gikinahanglan sa pagpadagan sa mga sudlanan. Lakip sa mga pakete nga nahilambigit sa proyekto mao ang system manager systemd, ang librarya sa Glibc, ug ang mga himan sa asembliya
Buildroot, GRUB bootloader, network configurator Daotan, runtime para sa nahilit nga mga sudlanan sudlanan, Kubernetes container orchestration platform, aws-iam-authenticator, ug Amazon ECS agent.

Ang pag-apod-apod gi-update sa atomiko ug gihatag sa porma sa usa ka dili mabahin nga imahe sa sistema. Duha ka mga partisyon sa disk ang gigahin alang sa sistema, ang usa niini naglangkob sa aktibo nga sistema, ug ang pag-update gikopya sa ikaduha. Human ma-deploy ang pag-update, ang ikaduhang partisyon mahimong aktibo, ug sa una, hangtud nga moabut ang sunod nga pag-update, ang naunang bersyon sa sistema maluwas, diin mahimo nimong ibalik kung adunay mga problema. Awtomatikong gi-install ang mga update nga wala’y interbensyon sa tagdumala.

Ang yawe nga kalainan gikan sa parehas nga mga pag-apod-apod sama sa Fedora CoreOS, CentOS / Red Hat Atomic Host mao ang panguna nga pokus sa paghatag. maximum nga seguridad sa konteksto sa pagpalig-on sa proteksyon sa sistema gikan sa posible nga mga hulga, nga mas lisud ang pagpahimulos sa mga kahuyangan sa mga sangkap sa OS ug pagdugang sa pagkalain sa mga sudlanan. Ang mga sudlanan gihimo gamit ang standard Linux kernel mechanisms - cgroups, namespaces ug seccomp. Alang sa dugang nga pag-inusara, ang pag-apod-apod naggamit sa SELinux sa "pagpatuman" nga mode, ug ang module gigamit alang sa pag-verify sa cryptographic sa integridad sa partition sa ugat. dm-kamatuoran. Kung ang pagsulay sa pag-usab sa datos sa lebel sa block device nakit-an, ang sistema mag-reboot.

Ang root partition kay gi-mount read-only, ug ang /etc settings partition kay gi-mount sa tmpfs ug gibalik sa iyang orihinal nga kahimtang human sa restart. Ang direkta nga pagbag-o sa mga file sa /etc nga direktoryo, sama sa /etc/resolv.conf ug /etc/containerd/config.toml, dili suportado - aron permanente nga makatipig sa mga setting, kinahanglan nimo nga gamiton ang API o ibalhin ang gamit ngadto sa lain nga mga sudlanan.

Kadaghanan sa mga sangkap sa sistema gisulat sa Rust, nga naghatag mga bahin nga luwas sa panumduman aron malikayan ang mga kahuyangan nga gipahinabo sa pagkahuman sa wala’y bayad nga mga pag-access sa memorya, mga wala’y kapilian nga pointer, ug mga overrun sa buffer. Kung nagtukod pinaagi sa default, ang "--enable-default-pie" ug "--enable-default-ssp" compilation modes gigamit aron mahimo ang randomization sa address space sa executable files (SAKIT) ug stack overflow protection pinaagi sa canary substitution.
Alang sa mga pakete nga gisulat sa C/C++, gilakip ang dugang nga mga bandila
"-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" ug "-fstack-clash-protection".

Ang mga himan sa pag-orkestra sa sudlanan gilain nga gihatag kontrol nga sudlanan, nga gipalihok pinaagi sa default ug kontrolado pinaagi sa API ug AWS SSM Agent. Ang base nga imahe kulang sa command shell, SSH server ug gihubad nga mga pinulongan (pananglitan, walay Python o Perl) - ang mga himan sa administratibo ug mga himan sa pag-debug nahimutang sa lahi nga sudlanan sa serbisyo, nga gi-disable pinaagi sa default.

Source: opennet.ru

Idugang sa usa ka comment