Amazon publicerar Bottlerocket 1.0.0, en Linux-distribution baserad på isolerade behållare

Amazon Company представила första betydande utgåvan av en dedikerad Linux-distribution Bottlerocket 1.0.0, designad för att köra isolerade containrar effektivt och säkert. Distributionens verktyg och styrkomponenter är skrivna i Rust och sprida under MIT- och Apache 2.0-licenser. Projektet utvecklas på GitHub och är tillgängligt för deltagande av communitymedlemmar. Systemdistributionsbilden genereras för x86_64- och Aarch64-arkitekturerna. OS är anpassat för att köras på Amazon ECS och AWS EKS Kubernetes-kluster. Är försedda verktyg för att skapa dina egna sammanställningar och utgåvor, som kan använda andra orkestreringsverktyg, kärnor och körtid för behållare.

Distributionen tillhandahåller Linux-kärnan och en minimal systemmiljö, inklusive endast de komponenter som krävs för att köra behållare. Bland paketen som är involverade i projektet finns systemhanteraren systemd, Glibc-biblioteket och monteringsverktygen
Buildroot, GRUB bootloader, nätverkskonfigurator ond, körtid för isolerade behållare innehöll, Kubernetes containerorkestreringsplattform, aws-iam-autenticator och Amazon ECS-agent.

Fördelningen uppdateras atomärt och levereras i form av en odelbar systembild. Två diskpartitioner är tilldelade för systemet, varav en innehåller det aktiva systemet, och uppdateringen kopieras till den andra. Efter att uppdateringen har distribuerats blir den andra partitionen aktiv, och i den första, tills nästa uppdatering kommer, sparas den tidigare versionen av systemet, som du kan rulla tillbaka till om problem uppstår. Uppdateringar installeras automatiskt utan administratörsingripande.

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 från möjliga hot, göra det svårare att utnyttja sårbarheter i OS-komponenter och öka isoleringen av containrar. Behållare skapas med vanliga Linux-kärnmekanismer - cgroups, namespaces och seccomp. För ytterligare isolering använder distributionen SELinux i "enforcing"-läget, och modulen används för kryptografisk verifiering av rotpartitionens integritet dm-sanning. Om ett försök att modifiera data på blockenhetsnivå upptäcks, startar systemet om.

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.

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 adressutrymmet för körbara filer (PAJ) och översvämningsskydd via kanariefågel.
För paket skrivna i C/C++ ingår ytterligare flaggor
"-Wall", "-Werror=format-säkerhet", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" och "-fstack-clash-protection".

Behållarorkestreringsverktyg levereras separat kontrollbehållare, som är aktiverat som standard och styrs via 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 finns i separat servicebehållare, som är inaktiverat som standard.

Källa: opennet.ru

Lägg en kommentar