Bottlerocket 1.8 is beschikbaar, een distributie op basis van geïsoleerde containers

De release van de Bottlerocket 1.8.0 Linux-distributie is gepubliceerd, ontwikkeld met de medewerking van Amazon om geïsoleerde containers effectief en veilig te laten werken. De toolkit en besturingscomponenten van de distributie zijn geschreven in Rust en gedistribueerd onder de MIT- en Apache 2.0-licenties. Het ondersteunt het uitvoeren van Bottlerocket op Amazon ECS-, VMware- en AWS EKS Kubernetes-clusters, evenals het maken van aangepaste builds en edities die verschillende orkestratie- en runtime-tools voor containers mogelijk maken.

De distributie biedt een atomisch en automatisch bijgewerkt ondeelbaar systeemimage dat de Linux-kernel bevat en een minimale systeemomgeving die alleen de componenten bevat die nodig zijn om containers te laten draaien. De omgeving omvat de systemd-systeembeheerder, de Glibc-bibliotheek, de Buildroot-buildtool, de GRUB-bootloader, de slechte netwerkconfigurator, de geïsoleerde containerruntime van de container, het Kubernetes-containerorkestratieplatform, de aws-iam-authenticator en de Amazon ECS-agent .

De containerorkestratietools worden geleverd in een afzonderlijke beheercontainer die standaard is ingeschakeld en wordt beheerd via de API en AWS SSM Agent. De basisafbeelding mist een opdrachtshell, een SSH-server en geïnterpreteerde talen (bijvoorbeeld geen Python of Perl) - administratieve en foutopsporingstools worden verplaatst naar een aparte servicecontainer, die standaard is uitgeschakeld.

Het belangrijkste verschil met vergelijkbare distributies zoals Fedora CoreOS, CentOS/Red Hat Atomic Host is de primaire focus op het bieden van maximale beveiliging in de context van het versterken van de systeembescherming tegen mogelijke bedreigingen, het compliceren van de exploitatie van kwetsbaarheden in OS-componenten en het vergroten van containerisolatie. Containers worden gemaakt met behulp van de reguliere mechanismen van de Linux-kernel - cgroups, namespaces en seccomp. Voor extra isolatie gebruikt de distributie SELinux in "afdwingende" modus.

De rootpartitie wordt in alleen-lezen-modus aangekoppeld en de partitie met /etc-instellingen wordt in tmpfs aangekoppeld en na een herstart in de oorspronkelijke staat hersteld. Directe wijziging van bestanden in de map /etc, zoals /etc/resolv.conf en /etc/containerd/config.toml, wordt niet ondersteund - om instellingen permanent op te slaan, moet u de API gebruiken of de functionaliteit verplaatsen naar afzonderlijke containers. Voor cryptografische verificatie van de integriteit van de rootpartitie wordt de dm-verity-module gebruikt en als een poging wordt gedetecteerd om gegevens op blokapparaatniveau te wijzigen, wordt het systeem opnieuw opgestart.

De meeste systeemcomponenten zijn geschreven in Rust, dat geheugenveilige tools biedt om kwetsbaarheden te voorkomen die worden veroorzaakt door het adresseren van een geheugengebied nadat het is vrijgegeven, het verwijderen van verwijzingen naar null-pointers en bufferoverschrijdingen. Bij het bouwen worden standaard de compilatiemodi "--enable-default-pie" en "--enable-default-ssp" gebruikt om uitvoerbare adresruimte-randomisatie (PIE) en bescherming tegen stack-overflows door middel van canary-labelvervanging mogelijk te maken. Voor pakketten geschreven in C/C++ zijn de vlaggen "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" en "-fstack-clash" extra inbegrepen -bescherming.

In de nieuwe uitgave:

  • De inhoud van de beheer- en controlecontainers is vernieuwd.
  • Runtime voor geïsoleerde containers is bijgewerkt naar de containerd 1.6.x-tak.
  • Herstart van achtergrondprocessen die het werk van containers coördineren, is verzekerd na wijzigingen in het certificaatarchief.
  • De mogelijkheid om opstartparameters van de kernel in te stellen via de Boot Configuration-sectie wordt geboden.
  • Negeren van lege blokken ingeschakeld bij het controleren van de integriteit van de rootpartitie met behulp van dm-verity.
  • Biedt de mogelijkheid om hostnamen statisch te binden in /etc/hosts.
  • De mogelijkheid om een ​​netwerkconfiguratie te genereren met behulp van het netdog-hulpprogramma is beschikbaar (de opdracht create-net-config is toegevoegd).
  • Nieuwe distributie-opties met ondersteuning voor Kubernetes 1.23 worden voorgesteld. Kortere opstarttijd voor pods in Kubernetes door de modus configMapAndSecretChangeDetectionStrategy uit te schakelen. Nieuwe Kubelet-instellingen toegevoegd: provider-id en podPidsLimit.
  • Een nieuwe 'aws-ecs-1-nvidia'-distributie voor Amazon Elastic Container Service (Amazon ECS) is voorgesteld en wordt geleverd met NVIDIA-stuurprogramma's.
  • Ondersteuning toegevoegd voor Microchip Smart Storage en MegaRAID SAS-opslagapparaten. Uitgebreide ondersteuning voor Ethernet-kaarten op basis van Broadcom-chips.
  • Bijgewerkte versies van pakketten en afhankelijkheden voor Go- en Rust-talen, evenals versies van pakketten met programma's van derden. Bottlerocket SDK is bijgewerkt naar versie 0.26.0.

Bron: opennet.ru

Voeg een reactie