Amazon vydáva Bottlerocket 1.0.0, distribúciu Linuxu založenú na izolovaných kontajneroch

Spoločnosť Amazon представила prvé významné vydanie špecializovanej distribúcie Linuxu Fľaša 1.0.0, navrhnutý tak, aby prevádzkoval izolované kontajnery efektívne a bezpečne. Nástroje a ovládacie komponenty distribúcie sú napísané v jazyku Rust a šírenie pod licenciami MIT a Apache 2.0. Projekt sa vyvíja na GitHub a je k dispozícii pre členov komunity. Obraz nasadenia systému sa generuje pre architektúry x86_64 a Aarch64. OS je prispôsobený na spustenie na klastroch Amazon ECS a AWS EKS Kubernetes. Sú k dispozícii nástroje na vytváranie vlastných zostáv a edícií, ktoré môžu využívať iné nástroje na orchestráciu, jadrá a runtime pre kontajnery.

Distribúcia poskytuje linuxové jadro a minimálne systémové prostredie vrátane komponentov potrebných na spustenie kontajnerov. Medzi balíkmi zapojenými do projektu sú systémový manažér systemd, knižnica Glibc a nástroje na zostavovanie
Buildroot, bootloader GRUB, konfigurátor siete zlý, runtime pre izolované kontajnery kontajnerd, platforma na orchestráciu kontajnerov Kubernetes, aws-iam-authenticator a agent Amazon ECS.

Distribúcia je aktualizovaná atomicky a je dodávaná vo forme nedeliteľného obrazu systému. Systému sú pridelené dva diskové oddiely, z ktorých jeden obsahuje aktívny systém a aktualizácia sa skopíruje do druhého. Po nasadení aktualizácie sa stane aktívnou druhá partícia a v prvej sa až do príchodu ďalšej aktualizácie uloží predchádzajúca verzia systému, ku ktorej sa v prípade problémov môžete vrátiť. Aktualizácie sa inštalujú automaticky bez zásahu správcu.

Kľúčovým rozdielom od podobných distribúcií, ako je Fedora CoreOS, CentOS/Red Hat Atomic Host, je primárne zameranie na poskytovanie maximálnu bezpečnosť v kontexte posilnenia ochrany systému pred možnými hrozbami, sťaženia využívania zraniteľností komponentov OS a zvýšenia izolácie kontajnerov. Kontajnery sú vytvorené pomocou štandardných mechanizmov jadra Linuxu – cgroups, namespaces a seccomp. Pre dodatočnú izoláciu používa distribúcia SELinux v režime „vynucovania“ a modul sa používa na kryptografické overenie integrity koreňového oddielu dm-verity. Ak sa zistí pokus o úpravu údajov na úrovni blokového zariadenia, systém sa reštartuje.

Koreňový oddiel je pripojený len na čítanie a oddiel s nastaveniami /etc je pripojený v tmpfs a po reštarte obnovený do pôvodného stavu. Priama modifikácia súborov v adresári /etc, ako napríklad /etc/resolv.conf a /etc/containerd/config.toml, nie je podporovaná - na trvalé uloženie nastavení musíte použiť API alebo presunúť funkčnosť do samostatných kontajnerov.

Väčšina systémových komponentov je napísaná v jazyku Rust, ktorý poskytuje funkcie bezpečné pre pamäť, aby sa predišlo zraniteľnostiam spôsobeným prístupmi do pamäte po uvoľnení, dereferencemi nulového ukazovateľa a pretečením vyrovnávacej pamäte. Pri predvolenom vytváraní sa režimy kompilácie „--enable-default-pie“ a „--enable-default-ssp“ používajú na umožnenie randomizácie adresného priestoru spustiteľných súborov (PIE) a ochrana proti pretečeniu zásobníka prostredníctvom kanárikovej substitúcie.
Pre balíky napísané v C/C++ sú zahrnuté ďalšie príznaky
"-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" a "-fstack-clash-protection".

Nástroje na orchestráciu kontajnerov sa dodávajú samostatne kontrolný kontajner, ktorý je štandardne povolený a ovládaný cez API a AWS SSM Agent. V základnom obrázku chýba príkazový shell, SSH server a interpretované jazyky ​​(napríklad žiadny Python alebo Perl) - administratívne nástroje a nástroje na ladenie sú umiestnené v samostatný servisný kontajner, ktorá je predvolene vypnutá.

Zdroj: opennet.ru

Pridať komentár