Release of Bottlerocket 1.3, en distribution baserad på isolerade containrar

Releasen av Linux-distributionen Bottlerocket 1.3.0 har publicerats, utvecklad med deltagande av Amazon för effektiv och säker lansering av isolerade behållare. Distributionens verktyg och kontrollkomponenter är skrivna i Rust och distribueras under licenserna MIT och Apache 2.0. Det stöder körning av Bottlerocket på Amazon ECS, VMware och AWS EKS Kubernetes-kluster, samt att skapa anpassade builds och utgåvor som tillåter användning av olika orkestrerings- och körtidsverktyg för containrar.

Distributionen tillhandahåller en atomiskt och automatiskt uppdaterad odelbar systembild som inkluderar Linux-kärnan och en minimal systemmiljö, inklusive endast de komponenter som är nödvändiga för att köra containrar. Miljön inkluderar systemd systemhanteraren, Glibc-biblioteket, Buildroot-byggverktyget, GRUB-starthanteraren, den onda nätverkskonfiguratorn, containerd-runtime för isolerade containrar, Kubernetes containerorkestreringsplattform, aws-iam-autenticator och Amazon. ECS agent.

Behållarorkestreringsverktyg kommer i en separat hanteringsbehållare som är aktiverad som standard och hanteras genom API och AWS SSM Agent. Basbilden saknar ett kommandoskal, SSH-server och tolkade språk (till exempel ingen Python eller Perl) - administrativa verktyg och felsökningsverktyg placeras i en separat tjänstebehållare, som är inaktiverad som standard.

Den viktigaste skillnaden från liknande distributioner som Fedora CoreOS, CentOS/Red Hat Atomic Host är det primära fokuset på att tillhandahålla maximal säkerhet i samband med att stärka systemskyddet mot möjliga hot, vilket gör det svårare att utnyttja sårbarheter i OS-komponenter och öka behållarisoleringen . Behållare skapas med vanliga Linux-kärnmekanismer - cgroups, namespaces och seccomp. För ytterligare isolering använder distributionen SELinux i "framtvingande" läge.

Rotpartitionen är skrivskyddad monterad, och /etc settings-partitionen monteras i tmpfs och återställs till sitt ursprungliga tillstånd efter en omstart. Direkt modifiering av filer i /etc-katalogen, såsom /etc/resolv.conf och /etc/containerd/config.toml, stöds inte - för att permanent spara inställningar måste du använda API:t eller flytta funktionaliteten till separata behållare. Modulen dm-verity används för att kryptografiskt verifiera rotpartitionens integritet, och om ett försök att modifiera data på blockenhetsnivå upptäcks, startas systemet om.

De flesta systemkomponenter är skrivna i Rust, vilket ger minnessäkra funktioner för att undvika sårbarheter orsakade av efterfri minnesåtkomst, nollpekarereferenser och buffertöverskridanden. När man bygger som standard används kompileringslägena "-enable-default-pie" och "-enable-default-ssp" för att möjliggöra randomisering av det körbara filadressutrymmet (PIE) och skydd mot stackspill genom kanariefot. För paket skrivna i C/C++ är flaggorna "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" och "-fstack-clash" dessutom aktiverat -skydd".

I den nya utgåvan:

  • Fixade sårbarheter i docker och runtime containerd-verktyg (CVE-2021-41089, CVE-2021-41091, CVE-2021-41092, CVE-2021-41103) relaterade till felaktig inställning av åtkomsträttigheter, vilket gjorde att oprivilegierade användare kunde gå utanför basen katalog och kör externa program.
  • IPv6-stöd har lagts till kubelet och pluto.
  • Det är möjligt att starta om behållaren efter att ha ändrat dess inställningar.
  • Stöd för Amazon EC2 M6i-instanser har lagts till i eni-max-pods-paketet.
  • Open-vm-tools har lagt till stöd för enhetsfilter, baserat på Cilium toolkit.
  • För x86_64-plattformen är ett hybridstartläge implementerat (med stöd för EFI och BIOS).
  • Uppdaterade paketversioner och beroenden för språket Rust.
  • Stödet för distributionsvarianten aws-k8s-1.17 baserad på Kubernetes 1.17 har upphört. Det rekommenderas att använda versionen aws-k8s-1.21 med stöd för Kubernetes 1.21. K8s-varianterna använder inställningarna cgroup runtime.slice och system.slice.

Källa: opennet.ru

Lägg en kommentar