Amazon objavlja Bottlerocket 1.0.0, distribucijo Linuxa, ki temelji na izoliranih vsebnikih

Podjetje Amazon predstavljeno prva pomembna izdaja namenske distribucije Linuxa Steklenica 1.0.0, zasnovan za učinkovito in varno delovanje izoliranih kontejnerjev. Orodja in nadzorne komponente distribucije so napisane v Rust in širjenje pod licencama MIT in Apache 2.0. Projekt se razvija na GitHubu in je na voljo za sodelovanje članom skupnosti. Slika za uvedbo sistema je ustvarjena za arhitekturi x86_64 in Aarch64. OS je prilagojen za delovanje v gručah Amazon ECS in AWS EKS Kubernetes. So na voljo orodja za ustvarjanje lastnih sestavov in edicij, ki lahko uporabljajo druga orodja za orkestracijo, jedra in izvajalno okolje za vsebnike.

Distribucija zagotavlja jedro Linuxa in minimalno sistemsko okolje, vključno s komponentami, ki so potrebne za izvajanje vsebnikov. Med paketi, vključenimi v projekt, so sistemski upravitelj systemd, knjižnica Glibc in orodja za sestavljanje
Buildroot, zagonski nalagalnik GRUB, omrežni konfigurator zlobna, čas izvajanja za izolirane vsebnike zabojnikd, platforma za orkestracijo vsebnikov Kubernetes, aws-iam-authenticator in agent Amazon ECS.

Distribucija je posodobljena atomsko in je dostavljena v obliki nedeljive sistemske slike. Sistemu sta dodeljeni dve particiji diska, od katerih ena vsebuje aktivni sistem, posodobitev pa se kopira v drugo. Po uvedbi posodobitve postane druga particija aktivna, v prvi pa se do naslednje posodobitve shrani prejšnja različica sistema, na katero se lahko vrnete, če pride do težav. Posodobitve se namestijo samodejno brez skrbniškega posredovanja.

Ključna razlika od podobnih distribucij, kot so Fedora CoreOS, CentOS/Red Hat Atomic Host, je primarna osredotočenost na zagotavljanje maksimalna varnost v kontekstu krepitve zaščite sistema pred morebitnimi grožnjami, oteževanja izkoriščanja ranljivosti v komponentah OS in povečanja izolacije vsebnikov. Vsebniki so ustvarjeni s standardnimi mehanizmi jedra Linuxa - cgroups, namespaces in seccomp. Za dodatno izolacijo distribucija uporablja SELinux v načinu »uveljavljanje«, modul pa se uporablja za kriptografsko preverjanje celovitosti korenske particije dm-resnica. Če je zaznan poskus spreminjanja podatkov na ravni blokovne naprave, se sistem znova zažene.

Korenska particija je nameščena samo za branje, particija z nastavitvami /etc pa je nameščena v tmpfs in po vnovičnem zagonu obnovljena v prvotno stanje. Neposredno spreminjanje datotek v imeniku /etc, kot sta /etc/resolv.conf in /etc/containerd/config.toml, ni podprto – če želite trajno shraniti nastavitve, morate uporabiti API ali premakniti funkcionalnost v ločene vsebnike.

Večina sistemskih komponent je napisanih v Rustu, ki zagotavlja varne funkcije za pomnilnik, da se izognemo ranljivostim, ki jih povzročijo dostopi do pomnilnika po sprostitvi, dereference ničelnega kazalca in prekoračitve medpomnilnika. Pri privzeti gradnji se načina prevajanja »--enable-default-pie« in »--enable-default-ssp« uporabljata za omogočanje naključne razporeditve naslovnega prostora izvršljivih datotek (PIE) in zaščita pred prelivanjem sklada prek kanarične zamenjave.
Za pakete, napisane v C/C++, so vključene dodatne zastavice
"-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" in "-fstack-clash-protection".

Orodja za orkestracijo vsebnika so dobavljena ločeno kontrolni vsebnik, ki je privzeto omogočen in nadzorovan prek API in agent AWS SSM. Osnovna slika nima ukazne lupine, strežnika SSH in interpretiranih jezikov (na primer brez Pythona ali Perla) - skrbniška orodja in orodja za odpravljanje napak se nahajajo v ločena servisna posoda, ki je privzeto onemogočen.

Vir: opennet.ru

Dodaj komentar