Kutolewa kwa Bottlerocket 1.2, usambazaji kulingana na vyombo vilivyotengwa

Utoaji wa usambazaji wa Linux Bottlerocket 1.2.0 unapatikana, uliotengenezwa kwa ushiriki wa Amazon kwa ajili ya uzinduzi wa ufanisi na salama wa vyombo vilivyotengwa. Zana za usambazaji na sehemu za udhibiti zimeandikwa kwa Rust na kusambazwa chini ya leseni za MIT na Apache 2.0. Inaauni kuendesha Bottlerocket kwenye vikundi vya Amazon ECS, VMware na AWS EKS Kubernetes, pamoja na kuunda miundo maalum na matoleo ambayo huruhusu matumizi ya zana mbalimbali za upangaji na wakati wa kukimbia kwa makontena.

Usambazaji hutoa taswira ya mfumo isiyogawanyika kiatomi na iliyosasishwa kiotomatiki ambayo inajumuisha kinu cha Linux na mazingira ya mfumo mdogo, ikijumuisha vipengele muhimu tu vya kuendesha vyombo. Mazingira yanajumuisha kidhibiti mfumo wa mfumo, maktaba ya Glibc, zana ya ujenzi ya Buildroot, kipakiaji cha boot ya GRUB, kisanidi kiovu cha mtandao, muda wa matumizi uliowekwa kwa vyombo vilivyotengwa, jukwaa la uandaaji la vyombo vya Kubernetes, kithibitishaji cha aws-iam na Amazon. Wakala wa ECS.

Zana za kupanga vyombo huja katika chombo tofauti cha usimamizi ambacho huwashwa kwa chaguomsingi na kudhibitiwa kupitia API na AWS SSM Agent. Picha ya msingi haina ganda la amri, seva ya SSH na lugha zilizotafsiriwa (kwa mfano, hakuna Python au Perl) - zana za usimamizi na zana za kurekebisha huwekwa kwenye chombo tofauti cha huduma, ambacho kimezimwa kwa chaguo-msingi.

Tofauti kuu kutoka kwa usambazaji sawa kama vile Fedora CoreOS, CentOS/Red Hat Atomic Host ndio lengo kuu la kutoa usalama wa hali ya juu katika muktadha wa kuimarisha ulinzi wa mfumo dhidi ya vitisho vinavyowezekana, na kuifanya iwe ngumu zaidi kutumia udhaifu katika vipengee vya OS na kuongeza kutengwa kwa kontena. . Vyombo vinaundwa kwa kutumia mifumo ya kawaida ya Linux kernel - makundi, nafasi za majina na seccomp. Kwa kutengwa kwa ziada, usambazaji hutumia SELinux katika hali ya "kutekeleza".

Sehemu ya mizizi imewekwa kwa kusoma tu, na /etc kizigeu cha mipangilio imewekwa kwenye tmpfs na kurejeshwa kwa hali yake ya asili baada ya kuanza tena. Urekebishaji wa moja kwa moja wa faili katika saraka ya /etc, kama vile /etc/resolv.conf na /etc/containerd/config.toml, hautumiki - ili kuhifadhi mipangilio kabisa, lazima utumie API au usogeze utendakazi kwenye vyombo tofauti. Sehemu ya dm-uaminifu inatumika kuthibitisha kwa siri uadilifu wa kizigeu cha mizizi, na ikiwa jaribio la kurekebisha data katika kiwango cha kifaa cha kuzuia litatambuliwa, mfumo huwashwa upya.

Vipengee vingi vya mfumo vimeandikwa kwa Rust, ambayo hutoa vipengele vya usalama wa kumbukumbu ili kuepuka udhaifu unaosababishwa na ufikiaji wa kumbukumbu baada ya bila malipo, kuachwa kwa vielekezi visivyo na maana, na ziada ya bafa. Wakati wa kujenga kwa chaguo-msingi, njia za ujumuishaji "-enable-default-pie" na "-enable-default-ssp" hutumiwa kuwezesha ujanibishaji wa nafasi ya anwani ya faili inayoweza kutekelezwa (PIE) na ulinzi dhidi ya kufurika kwa rafu kupitia uingizwaji wa canary. Kwa vifurushi vilivyoandikwa kwa C/C++, bendera β€œ-Wall”, β€œ-Werror=format-security”, β€œ-Wp,-D_FORTIFY_SOURCE=2”, β€œ-Wp,-D_GLIBCXX_ASSERTIONS” na β€œ-fstack-clash” ni pamoja na. kuwezeshwa -ulinzi".

Katika toleo jipya:

  • Usaidizi ulioongezwa kwa vioo vya usajili wa picha za chombo.
  • Imeongeza uwezo wa kutumia vyeti vya kujiandikisha.
  • Chaguo lililoongezwa ili kusanidi jina la mpangishaji.
  • Toleo chaguo-msingi la kontena la msimamizi limesasishwa.
  • Umeongeza topolojia MenejaSera na topolojiaManagerScope mipangilio ya kubelet.
  • Usaidizi ulioongezwa kwa compression ya kernel kwa kutumia algorithm ya zstd.
  • Uwezo wa kupakia mashine pepe kwenye VMware katika umbizo la OVA (Open Virtualization Format) umetolewa.
  • Toleo la usambazaji aws-k8s-1.21 limesasishwa kwa usaidizi wa Kubernetes 1.21. Usaidizi wa aws-k8s-1.16 umekatishwa.
  • Ilisasisha matoleo ya vifurushi na vitegemezi vya lugha ya Rust.

Chanzo: opennet.ru

Kuongeza maoni