Dostupná verze Bottlerocket 1.8, distribuce založená na izolovaných kontejnerech

Bylo vydáno vydání Linuxové distribuce Bottlerocket 1.8.0, vyvíjené ve spolupráci s firmou Amazon pro efektivní a bezpečné spuštění izolovaných kontejnerů. Nástroje a řídicí komponenty distribuce jsou napsány v jazyce Rust a jsou distribuovány pod licencemi MIT a Apache 2.0. Podporuje spuštění Bottlerocket v clusterech Amazon ECS, VMware a AWS EKS Kubernetes, stejně jako vytváření libovolných sestavení a edic, které umožňují použití různých nástrojů pro orchestrace a runtime pro kontejnery.

Distribuce poskytuje atomické a automaticky aktualizované nedělitelné systémové obrazce, které zahrnují jádro Linux a minimální systémové prostředí, obsahující pouze komponenty nezbytné pro spuštění kontejnerů. V prostředí jsou zapojeny systémový správce systemd, knihovna Glibc, sestavovací nástroj Buildroot, zaváděcí program GRUB, konfigurační nástroj sítě wicked, runtime pro izolované kontejnery containerd, platforma pro orchestrace kontejnerů Kubernetes, autentifikátor aws-iam-authenticator a agent Amazon ECS.

Nástroje pro orchestrace kontejnerů jsou dodány v samostatném řídicím kontejneru, který je zapnut ve výchozím nastavení a spravován přes API a AWS SSM Agent. V základním obrazu není přítomna příkazová řádka, server SSH a interpretované jazyky (například chybí Python nebo Perl) — prostředky pro administrátora a ladící nástroje byly přesunuty do samostatného služebního kontejneru, který je ve výchozím nastavení zakázán.

Klíčovým rozdílem od podobných distribucí, jako jsou Fedora CoreOS, CentOS/Red Hat Atomic Host, je primární zaměření na poskytování maximální bezpečnosti v kontextu posílení ochrany systému před možnými hrozbami, ztížením využití zranitelností v komponentách OS a zvýšením izolace kontejnerů. Kontejnery jsou vytvářeny pomocí vestavěných mechanismů jádra Linux — cgroups, prostor názvů a seccomp. Pro další izolaci je v distribuci aplikován SELinux v režimu „enforcing“.

Kořenový oddíl je namontován v režimu pouze pro čtení a oddíl se soubory nastavení /etc je namontován v tmpfs a po restartu se obnoví do původního stavu. Přímé úpravy souborů v adresáři /etc, jako jsou /etc/resolv.conf a /etc/containerd/config.toml, nejsou podporovány — pro trvalé uchování nastavení je třeba použít API nebo přesunout funkčnost do samostatných kontejnerů. Pro kryptografickou verifikaci integrity kořenového oddílu je zapojen modul dm-verity a v případě zjištění pokusu o modifikaci dat na úrovni blokového zařízení se systém restartuje.

Většina systémových komponentů je napsána v jazyce Rust, který poskytuje prostředky pro bezpečné zacházení s pamětí, což umožňuje vyhnout se zranitelnostem způsobeným přístupem do paměti po jejím uvolnění, dereferencováním nulových ukazatelů a přetečením zásobníku. Při sestavení se standardně používají režimy kompilace „—enable-default-pie“ a „—enable-default-ssp“ pro aktivaci randomizace adresního prostoru spustitelných souborů (PIE) a ochrany proti přetečení zásobníku s použitím kanárkových značek. Pro balíčky napsané v jazyce C/C++ se navíc zapínají příznaky „-Wall“, „-Werror=format-security“, „-Wp,-D_FORTIFY_SOURCE=2“, „-Wp,-D_GLIBCXX_ASSERTIONS“ a „-fstack-clash-protection“.

V novém vydání:

  • Byl aktualizován obsah administrativních a správcovských kontejnerů.
  • Runtime pro izolované kontejnery byl aktualizován na větev containerd 1.6.x.
  • Bylo zajištěno restartování na pozadí běžících procesů, které koordinují práci kontejnerů, po změnách ve skladu certifikátů.
  • Byla poskytnuta možnost nastavení bootovacích parametrů jádra prostřednictvím sekce Boot Configuration.
  • Bylo zahrnuto ignorování prázdných bloků při kontrole integrity kořenového oddílu pomocí dm-verity.
  • Byla poskytnuta možnost statické vazby názvů hostitelů v /etc/hosts.
  • Byla poskytnuta možnost generování síťové konfigurace pomocí nástroje netdog (byla přidána příkazová volba generate-net-config).
  • Byly nabízeny nové varianty distribuce s podporou Kubernetes 1.23. Čas spuštění podů v Kubernetes byl zkrácen tím, že byl vypnut režim configMapAndSecretChangeDetectionStrategy. Byly přidány nové parametry pro kubelet: provider-id a podPidsLimit.
  • Byla navržena nová varianta distribuce „aws-ecs-1-nvidia“ pro Amazon Elastic Container Service (Amazon ECS), dodávaná s ovladači NVIDIA.
  • Byla přidána podpora pro úložná zařízení Microchip Smart Storage a MegaRAID SAS. Rozšířena podpora Ethernetových karet na čipech Broadcom.
  • Byly aktualizovány verze balíčků a závislostí pro jazyky Go a Rust, stejně jako verze balíčků třetích stran. Bottlerocket SDK bylo aktualizováno na verzi 0.26.0.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster