Die Veröffentlichung der Linux-Distribution Bottlerocket 1.2.0 ist verfĂŒgbar, die mit UnterstĂŒtzung von Amazon entwickelt wurde, um effektive und sichere AusfĂŒhrungen isolierter Container zu ermöglichen. Die Werkzeuge und Verwaltungskomponenten der Distribution sind in Rust geschrieben und stehen unter den Lizenzen MIT und Apache 2.0 zur VerfĂŒgung. Bottlerocket unterstĂŒtzt die AusfĂŒhrung in Amazon ECS-, VMware- und AWS EKS-Kubernetes-Clustern sowie die Erstellung beliebiger Builds und Editionen, die verschiedene Orchestrierungs- und Runtime-Tools fĂŒr Container zulassen.
Die Distribution bietet ein atomar und automatisch aktualisiertes, unteilbares Systemabbild, das einen Linux-Kernel und eine minimale Systemumgebung umfasst, die nur die fĂŒr den Betrieb von Containern erforderlichen Komponenten enthĂ€lt. In der Umgebung sind der Systemmanager systemd, die Bibliothek Glibc, das Build-Werkzeug Buildroot, der Bootloader GRUB, der Netzwerk-Konfigurator wicked, das Runtime fĂŒr isolierte Container containerd, die Container-Orchestrierungsplattform Kubernetes, der Authenticator aws-iam-authenticator und der Amazon ECS-Agent integriert.
Die Werkzeuge zur Orchestrierung von Containern werden in einem separaten Verwaltungs-Container bereitgestellt, der standardmĂ€Ăig aktiviert ist und ĂŒber die API und den AWS SSM Agent verwaltet wird. In dem Basisabbild fehlt eine Kommandozeile. Server SSH und interpretierte Sprachen (zum Beispiel, kein Python oder Perl) â Werkzeuge fĂŒr Administratoren und Debugging-Tools sind in einen separaten Dienstcontainer ausgegliedert, der standardmĂ€Ăig deaktiviert ist.
Das Hauptmerkmal im Vergleich zu Ă€hnlichen Distributionen wie Fedora CoreOS, CentOS/Red Hat Atomic Host ist die primĂ€re Ausrichtung auf maximale Sicherheit im Kontext der VerstĂ€rkung des Schutzes des Systems gegen mögliche Bedrohungen, der Erschwernis der Ausnutzung von Schwachstellen in Betriebssystemkomponenten und der Erhöhung der Isolation von Containern. Container werden mithilfe der Standardmechanismen des Linux-Kernels â cgroups, NamensrĂ€ume und seccomp â erstellt. FĂŒr zusĂ€tzliche Isolation wird im Distribution SELinux im Modus âenforcingâ eingesetzt.
Die Wurzelpartition wird im Nur-Lese-Modus eingehĂ€ngt, wĂ€hrend die Konfigurationspartition /etc in tmpfs eingebunden wird und ihren Ursprungszustand nach einem Neustart wiederherstellt. Direkte Ănderungen an Dateien im Verzeichnis /etc, wie /etc/resolv.conf und /etc/containerd/config.toml, werden nicht unterstĂŒtzt â fĂŒr das dauerhafte Speichern von Einstellungen sollten die API oder separate Container verwendet werden. FĂŒr die kryptografische Verifizierung der IntegritĂ€t der Wurzelpartition wird das Modul dm-verity verwendet, und im Falle eines Versuchs, Daten auf BlockgerĂ€tebene zu verĂ€ndern, wird das System neu gestartet.
Die meisten Systemkomponenten sind in der Programmiersprache Rust geschrieben, die sichere Speicheroperationen ermöglicht und Schwachstellen vermeidet, die durch Zugriffe auf den Speicher nach dessen Freigabe, Dereferenzierung von Nullzeigern und Buffer-Overflow verursacht werden können. Bei der Standardkompilierung werden die Kompilierungsmodi ââenable-default-pieâ und ââenable-default-sspâ verwendet, um die ZufĂ€lligkeit des Adressraums von ausfĂŒhrbaren Dateien (PIE) sowie den Schutz vor Stack-Overflow durch das EinfĂŒhren von Canary-Werten zu aktivieren. FĂŒr Pakete, die in C/C++ geschrieben sind, werden zusĂ€tzlich die Flags â-Wallâ, â-Werror=format-securityâ, â-Wp,-D_FORTIFY_SOURCE=2â, â-Wp,-D_GLIBCXX_ASSERTIONSâ und â-fstack-clash-protectionâ hinzugefĂŒgt.
In der neuen Version:
- UnterstĂŒtzung fĂŒr Container-Image-Registry-Spiegel hinzugefĂŒgt.
- Die Möglichkeit zur Verwendung von selbstsignierten Zertifikaten wurde hinzugefĂŒgt.
- Ein Parameter zur Konfiguration des Hostnamens wurde hinzugefĂŒgt.
- Die Version des standardmĂ€Ăig angebotenen administrativen Containers wurde aktualisiert.
- Die Einstellungen topologyManagerPolicy und topologyManagerScope fĂŒr kubelet wurden hinzugefĂŒgt.
- UnterstĂŒtzung fĂŒr die Kernel-Kompression mit dem Algorithmus zstd hinzugefĂŒgt.
- Die Möglichkeit, in VMware zu booten, wurde bereitgestellt. virtuelle Maschinen im OVA-Format (Open Virtualization Format).
- Die Version der Distribution aws-k8s-1.21 mit UnterstĂŒtzung fĂŒr Kubernetes 1.21 wurde aktualisiert. Die UnterstĂŒtzung fĂŒr aws-k8s-1.16 wurde eingestellt.
- Die Versionen der Pakete und AbhĂ€ngigkeiten fĂŒr die Sprache Rust wurden aktualisiert.
Quelle: opennet.ru
