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

Galimas Linux platinimo Bottlerocket 1.1.0 leidimas, sukurtas dalyvaujant Amazon, kad būtų galima 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“ 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:

  • Buvo pasiūlytos dvi naujos platinimo parinktys aws-k8s-1.20 ir vmware-k8s-1.20 su Kubernetes 1.20 palaikymu. Šie variantai, taip pat atnaujinta versija aws-ecs-1, naudoja naują Linux branduolio 5.10 leidimą. Pagal numatytuosius nustatymus užrakinimo režimas nustatytas į „vientisumą“ (užblokuotos galimybės, leidžiančios keisti veikiančią branduolį iš vartotojo vietos). aws-k8s-1.15 varianto, pagrįsto Kubernetes 1.15, palaikymas buvo nutrauktas.
  • Amazon ECS palaiko awsvpc tinklo režimą, kuris leidžia kiekvienai užduočiai skirti atskiras tinklo sąsajas ir vidinius IP adresus.
  • Pridedami nustatymai, skirti valdyti įvairius Kubernetes parametrus, įskaitant QPS, telkinio limitus ir galimybę prisijungti prie debesies paslaugų teikėjų, išskyrus AWS.
  • Bootstrap konteineris apriboja prieigą prie vartotojo duomenų naudojant SELinux.
  • Pridėta resize2fs programa.

Šaltinis: opennet.ru

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