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

Utgivelsen av Linux-distribusjonen Bottlerocket 1.1.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 i Amazon ECS- 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:

  • To nye distribusjonsalternativer aws-k8s-1.20 og vmware-k8s-1.20 med støtte for Kubernetes 1.20 har blitt foreslått. Disse variantene, så vel som den oppdaterte versjonen aws-ecs-1, bruker den nye Linux-kjernen 5.10-utgivelsen. Låsemodusen er satt til "integritet" som standard (funksjoner som tillater endringer i den kjørende kjernen fra brukerplass er blokkert). Støtte for aws-k8s-1.15-varianten basert på Kubernetes 1.15 er avviklet.
  • Amazon ECS støtter awsvpc nettverksmodus, som lar deg tildele separate nettverksgrensesnitt og interne IP-adresser for hver oppgave.
  • Lagt til innstillinger for å kontrollere ulike Kubernetes-parametere, inkludert QPS, bassenggrenser og muligheten til å koble til andre skyleverandører enn AWS.
  • Bootstrap-beholderen gir begrensning av tilgang til brukerdata ved å bruke SELinux.
  • Lagt til resize2fs-verktøyet.

Kilde: opennet.ru

Legg til en kommentar