Veröffentlichung von Bottlerocket 1.2, einer Distribution basierend auf isolierten Containern.

Die Veröffentlichung des Linux-Distribution Bottlerocket 1.2.0 ist verfügbar, das in Zusammenarbeit mit Amazon entwickelt wurde, um isolierte Container effizient und sicher zu starten. Die Tools und Verwaltungskomponenten der Distribution sind in Rust geschrieben und unter den Lizenzen MIT und Apache 2.0 verfügbar. Bottlerocket kann in Amazon ECS-, VMware- und AWS EKS-Kubernetes-Clustern ausgeführt werden und ermöglicht die Erstellung beliebiger Builds und Editionen, die verschiedene Orchestrierungstools und Laufzeitumgebungen für Container implementieren.

Die Distribution bietet ein atomar und automatisch aktualisierbares, unteilbares System-Image, das den Linux-Kernel und eine minimale Systemumgebung umfasst, die nur die erforderlichen Komponenten zum Starten von Containern enthält. In der Umgebung kommen der Systemmanager systemd, die Glibc-Bibliothek, das Buildroot-Bausystem, der Bootloader GRUB, der Netzwerk-Configurator wicked, die Runtime für isolierte Container containerd, die Container-Orchestrierungsplattform Kubernetes, der Authenticator aws-iam-authenticator und der Agent von Amazon ECS zum Einsatz.

Container-Orchestrierungswerkzeuge werden in einem separaten Management-Container bereitgestellt, der standardmäßig aktiviert ist und über die API und AWS SSM Agent verwaltet wird. Im Basis-Image fehlt eine Kommandozeilen-Schnittstelle. der Server SSH und interpretierte Sprachen (z. B. kein Python oder Perl) – Administrations- und Debugging-Tools sind in einen separaten Dienstcontainer ausgelagert, der standardmäßig deaktiviert ist.

Ein wesentliches Unterscheidungsmerkmal zu ähnlichen Distributionen wie Fedora CoreOS, CentOS/Red Hat Atomic Host ist der primäre Fokus auf die Bereitstellung maximaler Sicherheit im Hinblick auf die Verstärkung des Schutzes des Systems gegen potenzielle Bedrohungen, die Erschwernis der Ausnutzung von Schwachstellen in Betriebssystemkomponenten sowie die Erhöhung der Isolation von Containern. Container werden mithilfe der integrierten Mechanismen des Linux-Kernels – cgroups, Namespaces und seccomp – erstellt. Für zusätzliche Isolation wird in der Distribution SELinux im Modus 'enforcing' eingesetzt.

Das Root-Verzeichnis wird im Nur-Lese-Modus gemountet, während das Verzeichnis mit den Einstellungen "/etc" in tmpfs gemountet wird und nach einem Neustart den ursprünglichen Zustand wiederherstellt. Direkte Änderungen an Dateien im Verzeichnis "/etc", wie z.B. "/etc/resolv.conf" und "/etc/containerd/config.toml", werden nicht unterstützt – für die dauerhafte Speicherung von Einstellungen sollte die API verwendet oder die Funktionalität in separate Container ausgelagert werden. Für die kryptographische Verifizierung der Integrität des Root-Verzeichnisses wird das dm-verity-Modul eingesetzt, und im Falle eines versuchten Datenmodifikationen auf Blockgerätebene wird das System neu gestartet.

Die meisten Systemkomponenten sind in der Programmiersprache Rust geschrieben, die sicherere Speicherverwaltungsfunktionen bietet, um Schwachstellen wie den Zugriff auf den freigegebenen Speicher, das Dereferenzieren von Nullzeigern und Bufferüberläufe zu vermeiden. Standardmäßig werden die Kompilierungsparameter „—enable-default-pie“ und „—enable-default-ssp“ verwendet, um die Adressraumrandomisierung für ausführbare Dateien (PIE) und den Schutz vor Stacküberläufen durch das Platzieren von Canary-Tags zu aktivieren. Für in C/C++ geschriebene Pakete werden zusätzlich die Flags „-Wall“, „-Werror=format-security“, „-Wp,-D_FORTIFY_SOURCE=2“, „-Wp,-D_GLIBCXX_ASSERTIONS“ und „-fstack-clash-protection“ aktiviert.

In der neuen Version:

  • Unterstützung für das Spiegeln von Container-Image-Registern hinzugefügt.
  • Unterstützung für selbstsignierte Zertifikate hinzugefügt.
  • Ein Parameter zur Konfiguration des Hostnamens hinzugefügt.
  • Die Version des standardmäßig angebotenen Verwaltungscontainers wurde aktualisiert.
  • Die Einstellungen topologyManagerPolicy und topologyManagerScope für kubelet wurden hinzugefügt.
  • Unterstützung für die Komprimierung des Kernels mit dem Algorithmus zstd hinzugefügt.
  • Die Möglichkeit, in VMware zu booten, wurde bereitgestellt. virtuellen Maschinen im OVA-Format (Open Virtualization Format).
  • Die Variante aws-k8s-1.21 wurde aktualisiert, um Kubernetes 1.21 zu unterstützen. 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

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster