Amazon publiserer Bottlerocket 1.0.0, en Linux-distribusjon basert på isolerte beholdere

Amazon Company presentert første betydelige utgivelse av en dedikert Linux-distribusjon Bottlerocket 1.0.0, designet for å kjøre isolerte beholdere effektivt og sikkert. Distribusjonens verktøy og kontrollkomponenter er skrevet i Rust og spre under MIT- og Apache 2.0-lisenser. Prosjektet utvikles på GitHub og er tilgjengelig for deltakelse av fellesskapsmedlemmer. Systemdistribusjonsbildet genereres for x86_64- og Aarch64-arkitekturer. OS er tilpasset for å kjøre på Amazon ECS og AWS EKS Kubernetes-klynger. Er gitt verktøy for å lage dine egne sammenstillinger og utgaver, som kan bruke andre orkestreringsverktøy, kjerner og kjøretid for containere.

Distribusjonen gir Linux-kjernen og et minimalt systemmiljø, inkludert bare komponentene som er nødvendige for å kjøre containere. Blant pakkene som er involvert i prosjektet er systemansvarlig systemd, Glibc-biblioteket og monteringsverktøyene
Buildroot, GRUB bootloader, nettverkskonfigurator ugudelige, kjøretid for isolerte beholdere inneholdt, Kubernetes container orkestreringsplattform, aws-iam-authenticator og Amazon ECS-agent.

Fordelingen oppdateres atomisk og leveres i form av et udeleligt systembilde. To diskpartisjoner er tildelt systemet, hvorav den ene inneholder det aktive systemet, og oppdateringen kopieres til den andre. Etter at oppdateringen er distribuert, blir den andre partisjonen aktiv, og i den første, til neste oppdatering kommer, lagres forrige versjon av systemet, som du kan rulle tilbake til hvis det oppstår problemer. Oppdateringer installeres automatisk uten administratorinnblanding.

Hovedforskjellen fra lignende distribusjoner som Fedora CoreOS, CentOS/Red Hat Atomic Host er hovedfokuset på å tilby maksimal sikkerhet i sammenheng med å styrke systembeskyttelsen mot mulige trusler, gjøre det vanskeligere å utnytte sårbarheter i OS-komponenter og øke isolasjonen av containere. Beholdere lages ved å bruke standard Linux-kjernemekanismer - cgroups, namespaces og seccomp. For ytterligere isolasjon bruker distribusjonen SELinux i "håndhevende" modus, og modulen brukes til kryptografisk verifisering av rotpartisjonens integritet dm-verity. Hvis et forsøk på å endre data på blokkenhetsnivå oppdages, starter systemet på nytt.

Rotpartisjonen er montert skrivebeskyttet, og /etc settings-partisjonen monteres i tmpfs og gjenopprettes til sin opprinnelige tilstand etter en omstart. Direkte modifikasjon av filer i /etc-katalogen, slik som /etc/resolv.conf og /etc/containerd/config.toml, støttes ikke - for å lagre innstillinger permanent, må du bruke API eller flytte funksjonaliteten til separate beholdere.

De fleste systemkomponenter er skrevet i Rust, som gir minnesikre funksjoner for å unngå sårbarheter forårsaket av etterfrie minnetilganger, null-peker-dereferanser og bufferoverskridelser. Når du bygger som standard, brukes kompilasjonsmodusene "--enable-default-pie" og "--enable-default-ssp" for å muliggjøre randomisering av adresseområdet til kjørbare filer (PIE) og stabeloverløpsbeskyttelse via kanariebytte.
For pakker skrevet i C/C++ er tilleggsflagg inkludert
"-Wall", "-Werror=format-sikkerhet", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" og "-fstack-clash-protection".

Beholderorkestreringsverktøy leveres separat kontrollbeholder, som er aktivert som standard og kontrollert via API og AWS SSM Agent. Grunnbildet mangler et kommandoskall, SSH-server og tolkede språk (for eksempel ingen Python eller Perl) - administrative verktøy og feilsøkingsverktøy er plassert i separat servicebeholder, som er deaktivert som standard.

Kilde: opennet.ru

Legg til en kommentar