Wydanie Bottlerocket 1.2, dystrybucji opartej na izolowanych kontenerach

Dostępna wersja dystrybucji Linux Bottlerocket 1.2.0, rozwijanej we współpracy z firmą Amazon, do efektywnego i bezpiecznego uruchamiania izolowanych kontenerów. Narzędzia i komponenty zarządzające dystrybucji są napisane w języku Rust i są dystrybuowane na podstawie licencji MIT i Apache 2.0. Obsługiwane są klastry Amazon ECS, VMware oraz AWS EKS Kubernetes, a także możliwość tworzenia niestandardowych kompilacji i edycji, które pozwalają na zastosowanie różnych narzędzi orkiestracyjnych i runtime dla kontenerów.

Dystrybucja zapewnia atomowy i automatycznie aktualizowany nierozdzielny obraz systemowy, który obejmuje jądro Linux i minimalne środowisko systemowe, zawierające tylko komponenty niezbędne do uruchamiania kontenerów. W środowisku używany jest menedżer systemowy systemd, biblioteka Glibc, narzędzie do budowy Buildroot, bootloader GRUB, konfigurator sieci wicked, runtime dla izolowanych kontenerów containerd, platforma orkiestracyjna Kubernetes, uwierzytelniacz aws-iam-authenticator i agent Amazon ECS.

Narzędzia do orkiestracji kontenerów są dostarczane w osobnym kontenerze zarządzającym, który jest włączony domyślnie i zarządzany przez API oraz AWS SSM Agent. W podstawowym obrazie brakuje powłoki poleceń, serwer SSH oraz języki interpretowane (np. brak Pythona lub Perla) — narzędzia administracyjne i debugujące zostały przeniesione do oddzielnego kontenera pomocniczego, który domyślnie jest wyłączony.

Kluczową różnicą w porównaniu do podobnych dystrybucji, takich jak Fedora CoreOS, CentOS/Red Hat Atomic Host, jest pierwotne skoncentrowanie się na zapewnieniu maksymalnego bezpieczeństwa w kontekście wzmacniania ochrony systemu przed potencjalnymi zagrożeniami, utrudnienia wykorzystania luk w komponentach systemu operacyjnego oraz zwiększenia izolacji kontenerów. Kontenery są tworzone przy użyciu standardowych mechanizmów jądra Linuksa — cgroups, przestrzeni nazw oraz seccomp. Dla dodatkowej izolacji w dystrybucji stosowane jest SELinux w trybie „enforcing.”

Główny system plików jest montowany w trybie tylko do odczytu, a katalog z ustawieniami /etc jest montowany w tmpfs i przywraca pierwotny stan po restarcie. Bezpośrednie zmiany plików w katalogu /etc, takich jak /etc/resolv.conf i /etc/containerd/config.toml, nie są wspierane — aby trwale zachować ustawienia, należy używać API lub przenieść funkcjonalność do oddzielnych kontenerów. Do kryptograficznej weryfikacji integralności głównego systemu plików używany jest moduł dm-verity, a w przypadku wykrycia próby modyfikacji danych na poziomie bloku system zostanie zrestartowany.

Większość komponentów systemowych została napisana w języku Rust, który zapewnia narzędzia do bezpiecznej pracy z pamięcią, umożliwiając uniknięcie podatności spowodowanych dostępem do obszaru pamięci po jego zwolnieniu, dereferencjonowaniem wskaźników zerowych oraz przekroczeniem granic bufora. Podczas domyślnej kompilacji stosuje się tryby kompilacji „—enable-default-pie” oraz „—enable-default-ssp” w celu włączenia randomizacji przestrzeni adresowej plików wykonywalnych (PIE) oraz ochrony przed przepełnieniem stosu poprzez podstawienie znaczników kanarkowych. Dla pakietów napisanych w języku C/C++ dodatkowo włączane są flagi „-Wall”, „-Werror=format-security”, „-Wp,-D_FORTIFY_SOURCE=2”, „-Wp,-D_GLIBCXX_ASSERTIONS” oraz „-fstack-clash-protection”.

W nowym wydaniu:

  • Dodano wsparcie dla lustrzanych rejestrów obrazów kontenerów.
  • Dodano możliwość używania certyfikatów z podpisem własnym.
  • Dodano parametr do konfiguracji nazwy hosta.
  • Zaktualizowano wersję domyślnego kontenera administracyjnego.
  • Dodano ustawienia topologyManagerPolicy i topologyManagerScope dla kubelet.
  • Dodano wsparcie dla kompresji jądra za pomocą algorytmu zstd.
  • Umożliwiono uruchamianie w VMware maszyn wirtualnych w formacie OVA (Open Virtualization Format).
  • Zaktualizowano wersję dystrybucji aws-k8s-1.21 z obsługą Kubernetes 1.21. Zakończono wsparcie dla aws-k8s-1.16.
  • Zaktualizowano wersje pakietów i zależności dla języka Rust.

Źródło: opennet.ru

Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS - ProHoster