Release van Bottlerocket 1.2, een distributie gebaseerd op geïsoleerde containers

De release van de Linux-distributie Bottlerocket 1.2.0 is beschikbaar, ontwikkeld met medewerking van Amazon voor de efficiënte en veilige lancering van geïsoleerde containers. De tools 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 het gebruik van 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:

  • Ondersteuning toegevoegd voor registerspiegelservers voor containerimages.
  • De mogelijkheid toegevoegd om zelfondertekende certificaten te gebruiken.
  • Optie toegevoegd om de hostnaam te configureren.
  • De standaardversie van de administratieve container is bijgewerkt.
  • TopologyManagerPolicy en topologyManagerScope-instellingen toegevoegd voor kubelet.
  • Ondersteuning toegevoegd voor kernelcompressie met behulp van het zstd-algoritme.
  • Er wordt de mogelijkheid geboden om virtuele machines in VMware te laden in het OVA-formaat (Open Virtualization Format).
  • De distributieversie aws-k8s-1.21 is bijgewerkt met ondersteuning voor Kubernetes 1.21. Ondersteuning voor aws-k8s-1.16 is stopgezet.
  • Bijgewerkte pakketversies en afhankelijkheden voor de Rust-taal.

Bron: opennet.ru

Voeg een reactie