Išleistas Bottlerocket 1.2, platinimas, pagrįstas izoliuotais konteineriais

Galimas „Linux“ platinimo „Bottlerocket 1.2.0“ leidimas, sukurtas dalyvaujant „Amazon“, siekiant efektyviai ir saugiai paleisti izoliuotus konteinerius. Platinimo įrankiai ir valdymo komponentai parašyti Rust ir platinami pagal MIT ir Apache 2.0 licencijas. Jis palaiko „Bottlerocket“ paleidimą „Amazon ECS“, „VMware“ ir „AWS EKS Kubernetes“ klasteriuose, taip pat kuriant pasirinktines versijas ir leidimus, leidžiančius naudoti įvairius konteinerių orkestravimo ir vykdymo įrankius.

Platinimas suteikia atomiškai ir automatiškai atnaujintą nedalomą sistemos vaizdą, apimantį „Linux“ branduolį ir minimalią sistemos aplinką, įskaitant tik komponentus, reikalingus konteineriams paleisti. Aplinka apima sistemos tvarkyklę, Glibc biblioteką, Buildroot kūrimo įrankį, GRUB įkrovos įkroviklį, pikto tinklo konfigūratorių, atskirų konteinerių konteinerinį vykdymo laiką, Kubernetes konteinerių orkestravimo platformą, aws-iam-autentifikatorių ir Amazon. ECS agentas.

Sudėtinio rodinio valdymo įrankiai pateikiami atskirame valdymo konteineryje, kuris įgalintas pagal numatytuosius nustatymus ir valdomas naudojant API ir AWS SSM agentą. Baziniame paveikslėlyje trūksta komandų apvalkalo, SSH serverio ir interpretuojamų kalbų (pavyzdžiui, nėra Python ar Perl) - administravimo įrankiai ir derinimo įrankiai yra atskirame paslaugų konteineryje, kuris pagal numatytuosius nustatymus yra išjungtas.

Pagrindinis skirtumas nuo panašių platinimų, tokių kaip „Fedora CoreOS“, „CentOS“ / „Red Hat Atomic Host“, yra didžiausias dėmesys siekiant užtikrinti maksimalų saugumą, didinant sistemos apsaugą nuo galimų grėsmių, todėl sunkiau išnaudoti OS komponentų pažeidžiamumą ir didinant talpyklos izoliaciją. . Konteineriai kuriami naudojant standartinius Linux branduolio mechanizmus – cgroups, namespaces ir seccomp. Siekiant papildomos izoliacijos, paskirstymas naudoja SELinux vykdymo režimu.

Šakninis skaidinys yra prijungtas tik skaityti, o /etc nustatymų skaidinys yra įtrauktas į tmpfs ir atkuriamas į pradinę būseną po paleidimo iš naujo. Tiesioginis failų keitimas /etc kataloge, pvz., /etc/resolv.conf ir /etc/containerd/config.toml, nepalaikomas – norėdami visam laikui išsaugoti nustatymus, turite naudoti API arba perkelti funkcionalumą į atskirus konteinerius. Modulis dm-verity naudojamas kriptografiškai patikrinti šakninio skaidinio vientisumą, o jei aptinkamas bandymas modifikuoti duomenis blokinio įrenginio lygiu, sistema paleidžiama iš naujo.

Dauguma sistemos komponentų yra parašyti „Rust“ kalba, kuri suteikia atmintį saugančias funkcijas, kad būtų išvengta pažeidžiamumų, atsirandančių dėl laisvos atminties prieigos, nulinių rodyklės nuorodų ir buferio viršijimo. Kuriant pagal numatytuosius nustatymus, naudojami kompiliavimo režimai „-enable-default-pie“ ir „-enable-default-ssp“, kad būtų galima atsitiktine tvarka pasirinkti vykdomojo failo adresų erdvę (PIE) ir apsaugoti nuo dėklo perpildymo naudojant kanarinį pakeitimą. Paketams, parašytiems C/C++, papildomai yra vėliavėlės „-Wall“, „-Werror=format-security“, „-Wp,-D_FORTIFY_SOURCE=2“, „-Wp,-D_GLIBCXX_ASSERTIONS“ ir „-fstack-clash“. įjungta -apsauga“.

Naujame leidime:

  • Pridėtas konteinerio vaizdo registro veidrodžių palaikymas.
  • Pridėta galimybė naudoti savarankiškai pasirašytus sertifikatus.
  • Pridėta parinktis konfigūruoti pagrindinio kompiuterio pavadinimą.
  • Numatytoji administracinio sudėtinio rodinio versija buvo atnaujinta.
  • Pridėta kubelet topologyManagerPolicy ir topologyManagerScope nustatymai.
  • Pridėtas branduolio glaudinimo palaikymas naudojant zstd algoritmą.
  • Suteikiama galimybė įkelti virtualias mašinas į VMware OVA (Open Virtualization Format) formatu.
  • Platinimo versija aws-k8s-1.21 buvo atnaujinta palaikant Kubernetes 1.21. aws-k8s-1.16 palaikymas buvo nutrauktas.
  • Atnaujintos „Rust“ kalbos paketo versijos ir priklausomybės.

Šaltinis: opennet.ru

Добавить комментарий