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

Releasen av Linux-distributionen Bottlerocket 1.1.0 är tillgänglig, 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 i Amazon ECS 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:

  • Två nya distributionsalternativ aws-k8s-1.20 och vmware-k8s-1.20 med stöd för Kubernetes 1.20 har föreslagits. Dessa varianter, såväl som den uppdaterade versionen aws-ecs-1, använder den nya versionen av Linuxkärnan 5.10. Låsningsläget är inställt på "integritet" som standard (funktioner som tillåter ändringar att göras i den körande kärnan från användarutrymmet är blockerade). Stödet för aws-k8s-1.15-varianten baserad på Kubernetes 1.15 har upphört.
  • Amazon ECS stöder awsvpc-nätverksläge, vilket gör att du kan tilldela separata nätverksgränssnitt och interna IP-adresser för varje uppgift.
  • Lade till inställningar för att styra olika Kubernetes-parametrar, inklusive QPS, poolgränser och möjligheten att ansluta till andra molnleverantörer än AWS.
  • Bootstrap-behållaren ger begränsning av åtkomst till användardata med SELinux.
  • Lade till resize2fs-verktyget.

Källa: opennet.ru

Lägg en kommentar