Utgivelse av Bottlerocket 1.2, en distribusjon basert på isolerte beholdere

Utgivelsen av Linux-distribusjonen Bottlerocket 1.2.0 er tilgjengelig, utviklet med deltagelse av Amazon for effektiv og sikker lansering av isolerte beholdere. Distribusjonens verktøy og kontrollkomponenter er skrevet i Rust og distribuert under MIT- og Apache 2.0-lisensene. Den støtter kjøring av Bottlerocket på Amazon ECS, VMware og AWS EKS Kubernetes-klynger, i tillegg til å lage tilpassede bygg og utgaver som tillater bruk av ulike orkestrerings- og kjøretidsverktøy for containere.

Distribusjonen gir et atomisk og automatisk oppdatert udelelig systembilde som inkluderer Linux-kjernen og et minimalt systemmiljø, inkludert bare komponentene som er nødvendige for å kjøre containere. Miljøet inkluderer systemd systembehandleren, Glibc-biblioteket, Buildroot byggeverktøyet, GRUB oppstartslasteren, den onde nettverkskonfiguratoren, containerd runtime for isolerte containere, Kubernetes container orkestreringsplattform, aws-iam-autenticator og Amazon ECS agent.

Beholderorkestreringsverktøy kommer i en separat administrasjonsbeholder som er aktivert som standard og administrert gjennom 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 en egen tjenestebeholder, som er deaktivert som standard.

Hovedforskjellen fra lignende distribusjoner som Fedora CoreOS, CentOS/Red Hat Atomic Host er det primære fokuset på å gi maksimal sikkerhet i sammenheng med å styrke systembeskyttelsen mot mulige trusler, noe som gjør det vanskeligere å utnytte sårbarheter i OS-komponenter og øke containerisolasjonen . Beholdere lages ved å bruke standard Linux-kjernemekanismer - cgroups, namespaces og seccomp. For ytterligere isolasjon bruker distribusjonen SELinux i "håndhevende" modus.

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. dm-verity-modulen brukes til å kryptografisk verifisere integriteten til rotpartisjonen, og hvis det oppdages et forsøk på å endre data på blokkenhetsnivå, starter systemet på nytt.

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 det kjørbare filadresserommet (PIE) og beskyttelse mot stabeloverflyt gjennom kanariebytte. For pakker skrevet i C/C++ er flaggene "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" og "-fstack-clash" i tillegg aktivert -beskyttelse".

I den nye utgivelsen:

  • Lagt til støtte for speil for containerbilderegister.
  • Lagt til muligheten til å bruke selvsignerte sertifikater.
  • Lagt til alternativ for å konfigurere vertsnavn.
  • Standardversjonen av den administrative beholderen er oppdatert.
  • Lagt til topologyManagerPolicy og topologyManagerScope-innstillinger for kubelet.
  • Lagt til støtte for kjernekomprimering ved hjelp av zstd-algoritmen.
  • Muligheten til å laste virtuelle maskiner inn i VMware i OVA-formatet (Open Virtualization Format) er gitt.
  • Distribusjonsversjonen aws-k8s-1.21 har blitt oppdatert med støtte for Kubernetes 1.21. Støtte for aws-k8s-1.16 er avviklet.
  • Oppdaterte pakkeversjoner og avhengigheter for Rust-språket.

Kilde: opennet.ru

Legg til en kommentar