Izdaja Bottlerocket 1.7, distribucije, ki temelji na izoliranih vsebnikih

Objavljena je bila izdaja distribucije Linuxa Bottlerocket 1.7.0, ki je bila razvita s sodelovanjem Amazona za učinkovit in varen zagon izoliranih vsebnikov. Orodja in nadzorne komponente distribucije so napisane v Rustu in se distribuirajo pod licencama MIT in Apache 2.0. Podpira zagon Bottlerocket v gruči Amazon ECS, VMware in AWS EKS Kubernetes ter ustvarjanje gradenj in izdaj po meri, ki omogočajo uporabo različnih orodij za orkestracijo in izvajanje za vsebnike.

Distribucija zagotavlja atomsko in samodejno posodobljeno nedeljivo sliko sistema, ki vključuje jedro Linuxa in minimalno sistemsko okolje, vključno s komponentami, potrebnimi za zagon vsebnikov. Okolje vključuje upravitelja sistema systemd, knjižnico Glibc, orodje za gradnjo Buildroot, zagonski nalagalnik GRUB, zloben omrežni konfigurator, izvajalno okolje vsebnika za izolirane vsebnike, platformo za orkestracijo vsebnikov Kubernetes, aws-iam-authenticator in Amazon ECS agent.

Orodja za orkestracijo vsebnika so v ločenem vsebniku za upravljanje, ki je privzeto omogočen in se upravlja prek API-ja in agenta AWS SSM. Osnovni sliki manjka ukazna lupina, strežnik SSH in interpretirani jeziki (na primer brez Pythona ali Perla) - skrbniška orodja in orodja za odpravljanje napak so nameščena v ločenem storitvenem vsebniku, ki je privzeto onemogočen.

Ključna razlika od podobnih distribucij, kot so Fedora CoreOS, CentOS/Red Hat Atomic Host, je primarna osredotočenost na zagotavljanje maksimalne varnosti v kontekstu krepitve zaščite sistema pred možnimi grožnjami, oteževanje izkoriščanja ranljivosti v komponentah OS in povečanje izolacije vsebnika. . Vsebniki so ustvarjeni s standardnimi mehanizmi jedra Linuxa - cgroups, namespaces in seccomp. Za dodatno izolacijo distribucija uporablja SELinux v načinu »uveljavljanje«.

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. Modul dm-verity se uporablja za kriptografsko preverjanje celovitosti korenske particije in če je zaznan poskus spreminjanja podatkov na ravni blokovne naprave, se sistem znova zažene.

Večina sistemskih komponent je napisanih v Rustu, ki zagotavlja varne funkcije za pomnilnik, da se izognemo ranljivostim, ki jih povzročajo 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 razvrstitve naslovnega prostora izvršljivih datotek (PIE) in zaščito pred prelivi skladov s kanarsko zamenjavo. Za pakete, napisane v C/C++, so zastavice “-Wall”, “-Werror=format-security”, “-Wp,-D_FORTIFY_SOURCE=2”, “-Wp,-D_GLIBCXX_ASSERTIONS” in “-fstack-clash” dodatno omogočeno - zaščita".

V novi izdaji:

  • Pri namestitvi paketov RPM je mogoče ustvariti seznam programov v formatu JSON in ga namestiti v vsebnik gostitelja kot datoteko /var/lib/bottlerocket/inventory/application.json, da pridobite informacije o razpoložljivih paketih.
  • Vsebnika »admin« in »control« sta bila posodobljena.
  • Posodobljene različice paketov in odvisnosti za jezika Go in Rust.
  • Posodobljene različice paketov s programi tretjih oseb.
  • Odpravljene težave s konfiguracijo tmpfilesd za kmod-5.10-nvidia.
  • Pri namestitvi tuftoola so različice odvisnosti povezane.

Vir: opennet.ru

Dodaj komentar