Vydanie Bottlerocket 1.2, distribúcia založená na izolovaných kontajneroch

K dispozícii je vydanie linuxovej distribúcie Bottlerocket 1.2.0 vyvinutej za účasti Amazonu pre efektívne a bezpečné spúšťanie izolovaných kontajnerov. Nástroje a ovládacie komponenty distribúcie sú napísané v jazyku Rust a distribuované pod licenciami MIT a Apache 2.0. Podporuje spustenie Bottlerocket v klastroch Amazon ECS, VMware a AWS EKS Kubernetes, ako aj vytváranie vlastných zostavení a vydaní, ktoré umožňujú použitie rôznych nástrojov na orchestráciu a spustenie pre kontajnery.

Distribúcia poskytuje atomicky a automaticky aktualizovaný nedeliteľný systémový obraz, ktorý obsahuje linuxové jadro a minimálne systémové prostredie, vrátane komponentov potrebných na spustenie kontajnerov. Prostredie zahŕňa systémového manažéra systemd, knižnicu Glibc, nástroj na zostavovanie Buildroot, zavádzač GRUB, konfigurátor zlej siete, kontajnerový runtime pre izolované kontajnery, platformu na orchestráciu kontajnerov Kubernetes, aws-iam-authenticator a Amazon. Agent ECS.

Nástroje na orchestráciu kontajnerov sa dodávajú v samostatnom kontajneri na správu, ktorý je predvolene povolený a spravovaný prostredníctvom rozhrania API a agenta AWS SSM. 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 samostatnom kontajneri služieb, ktorý je predvolene vypnutý.

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álnej bezpečnosti v kontexte posilnenia ochrany systému pred možnými hrozbami, čím sa sťažuje využívanie zraniteľností v komponentoch OS a zvyšuje sa izolácia 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“.

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. Modul dm-verity sa používa na kryptografické overenie integrity koreňového oddielu a ak sa zistí pokus o úpravu údajov na úrovni blokového zariadenia, systém sa reštartuje.

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 štandardnom zostavovaní sa režimy kompilácie "-enable-default-pie" a "-enable-default-ssp" používajú na umožnenie náhodného usporiadania priestoru adries spustiteľného súboru (PIE) a ochrany proti pretečeniu zásobníka prostredníctvom náhrady canary. Pre balíky napísané v C/C++ sú navyše príznaky „-Wall“, „-Werror=format-security“, „-Wp,-D_FORTIFY_SOURCE=2“, „-Wp,-D_GLIBCXX_ASSERTIONS“ a „-fstack-clash“. povolená -ochrana“.

V novom vydaní:

  • Pridaná podpora pre zrkadlá registra obrázkov kontajnerov.
  • Pridaná možnosť používať certifikáty s vlastným podpisom.
  • Pridaná možnosť konfigurácie názvu hostiteľa.
  • Predvolená verzia administratívneho kontajnera bola aktualizovaná.
  • Pridané nastavenia topologyManagerPolicy a topologyManagerScope pre kubelet.
  • Pridaná podpora pre kompresiu jadra pomocou algoritmu zstd.
  • Poskytuje sa možnosť načítať virtuálne stroje do VMware vo formáte OVA (Open Virtualization Format).
  • Verzia distribúcie aws-k8s-1.21 bola aktualizovaná s podporou pre Kubernetes 1.21. Podpora pre aws-k8s-1.16 bola ukončená.
  • Aktualizované verzie balíkov a závislosti pre jazyk Rust.

Zdroj: opennet.ru

Pridať komentár