Amazon vydává Bottlerocket 1.0.0, distribuci Linuxu založenou na izolovaných kontejnerech

Amazonka prezentovány první významné vydání specializované linuxové distribuce Bottlerocket 1.0.0, navržený pro efektivní a bezpečný provoz izolovaných kontejnerů. Nástroje a ovládací komponenty distribuce jsou napsány v Rust and šíření pod licencemi MIT a Apache 2.0. Projekt je vyvíjen na GitHubu a je k dispozici pro účast členů komunity. Obraz nasazení systému je generován pro architektury x86_64 a Aarch64. Operační systém je přizpůsoben pro běh na clusterech Amazon ECS a AWS EKS Kubernetes. Jsou poskytovány nástroje pro vytváření vlastních sestavení a edic, které mohou využívat další nástroje pro orchestraci, jádra a běhové prostředí pro kontejnery.

Distribuce poskytuje linuxové jádro a minimální systémové prostředí, včetně pouze komponent nezbytných ke spuštění kontejnerů. Mezi balíčky zapojené do projektu patří správce systému systemd, knihovna Glibc a nástroje pro sestavení
Buildroot, zavaděč GRUB, síťový konfigurátor zlý, runtime pro izolované kontejnery kontejnerd, platforma pro orchestraci kontejnerů Kubernetes, aws-iam-authenticator a agent Amazon ECS.

Distribuce je aktualizována atomicky a je dodávána ve formě nedělitelného obrazu systému. Systému jsou přiděleny dva diskové oddíly, z nichž jeden obsahuje aktivní systém a aktualizace se zkopíruje do druhého. Po nasazení aktualizace se zaktivizuje druhý oddíl a v prvním se do příchodu další aktualizace uloží předchozí verze systému, ke které se v případě problémů můžete vrátit. Aktualizace se instalují automaticky bez zásahu správce.

Klíčovým rozdílem od podobných distribucí, jako je Fedora CoreOS, CentOS/Red Hat Atomic Host, je primární zaměření na poskytování maximální bezpečnost v kontextu posílení ochrany systému před možnými hrozbami, ztížení zneužití zranitelností komponent OS a zvýšení izolace kontejnerů. Kontejnery jsou vytvářeny pomocí standardních mechanismů linuxového jádra – cgroups, jmenných prostorů a seccomp. Pro další izolaci používá distribuce SELinux v režimu „vynucování“ a modul se používá pro kryptografické ověření integrity kořenového oddílu dm-pravda. Pokud je detekován pokus o úpravu dat na úrovni blokového zařízení, systém se restartuje.

Kořenový oddíl je připojen pouze pro čtení a oddíl nastavení /etc je připojen v tmpfs a po restartu obnoven 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é uložení nastavení musíte použít API nebo přesunout funkcionalitu do samostatných kontejnerů.

Většina systémových komponent je napsána v Rustu, který poskytuje funkce bezpečné pro paměť, aby se zabránilo zranitelnostem způsobeným přístupy do paměti po volném čase, dereferencemi nulového ukazatele a přetečením vyrovnávací paměti. Při výchozím sestavování se používají režimy kompilace „--enable-default-pie“ a „--enable-default-ssp“, aby umožnily randomizaci adresního prostoru spustitelných souborů (PIE) a ochrana proti přetečení zásobníku prostřednictvím kanárkové substituce.
Pro balíčky napsané v C/C++ jsou zahrnuty další příznaky
"-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" a "-fstack-clash-protection".

Nástroje pro orchestraci kontejnerů se dodávají samostatně kontrolní kontejner, která je ve výchozím nastavení povolena a ovládá se pomocí API a AWS SSM Agent. Základní image postrádá příkazový shell, SSH server a interpretované jazyky ​​ (například žádný Python nebo Perl) - administrativní nástroje a nástroje pro ladění jsou umístěny v samostatný servisní kontejner, která je ve výchozím nastavení zakázána.

Zdroj: opennet.ru

Přidat komentář