Bottlerocket 1.7:n julkaisu, eristettyihin konteihin perustuva jakelu

Linux-jakelun Bottlerocket 1.7.0 julkaisu on julkaistu, ja se on kehitetty yhdessä Amazonin kanssa eristettyjen säiliöiden tehokkaaseen ja turvalliseen käynnistämiseen. Jakelun työkalut ja ohjauskomponentit on kirjoitettu Rust-kielellä ja niitä jaetaan MIT- ja Apache 2.0 -lisensseillä. Se tukee Bottlerocketin suorittamista Amazon ECS-, VMware- ja AWS EKS Kubernetes -klustereissa sekä mukautettujen koontiversioiden ja versioiden luomista, jotka mahdollistavat erilaisten orkestrointi- ja ajonaikaisten työkalujen käytön säilöille.

Jakelu tarjoaa atomisesti ja automaattisesti päivitetyn jakamattoman järjestelmäkuvan, joka sisältää Linux-ytimen ja minimaalisen järjestelmäympäristön, joka sisältää vain säilöjen suorittamiseen tarvittavat komponentit. Ympäristö sisältää systemd-järjestelmänhallinnan, Glibc-kirjaston, Buildroot-koontityökalun, GRUB-käynnistyslataimen, ilkeän verkon konfiguraattorin, yksittäisten säilöjen konttiajon, Kubernetes-säilön orkestrointialustan, aws-iam-authenticatorin ja Amazonin. ECS-agentti.

Säilön organisointityökalut toimitetaan erillisessä hallintasäiliössä, joka on oletuksena käytössä ja jota hallitaan API:n ja AWS SSM Agentin kautta. Peruskuvasta puuttuu komentokulli, SSH-palvelin ja tulkitut kielet (esim. ei Python tai Perl) - hallintatyökalut ja virheenkorjaustyökalut sijoitetaan erilliseen palvelusäiliöön, joka on oletuksena pois käytöstä.

Keskeinen ero samankaltaisiin jakeluihin, kuten Fedora CoreOS, CentOS/Red Hat Atomic Host, on ensisijainen painopiste maksimaalisen turvallisuuden tarjoamisessa vahvistettaessa järjestelmän suojaa mahdollisilta uhkilta, mikä vaikeuttaa käyttöjärjestelmän komponenttien haavoittuvuuksien hyödyntämistä ja lisää kontin eristäytymistä. . Säilöt luodaan käyttämällä tavallisia Linux-ytimen mekanismeja - cgroups, namespaces ja seccomp. Lisäeristystä varten jakelu käyttää SELinuxia "enforcing"-tilassa.

Juuriosio asennetaan vain luku -tilassa, ja /etc-asetukset-osio liitetään tmpfs-tiedostoon ja palautetaan alkuperäiseen tilaan uudelleenkäynnistyksen jälkeen. /etc-hakemistossa olevien tiedostojen, kuten /etc/resolv.conf ja /etc/containerd/config.toml, suoraa muokkaamista ei tueta - jos haluat tallentaa asetukset pysyvästi, sinun on käytettävä API:ta tai siirrettävä toiminnallisuus erillisiin säilöihin. Dm-verity-moduulia käytetään juuriosion eheyden salaustarkistukseen, ja jos havaitaan yritys muokata tietoja lohkolaitetasolla, järjestelmä käynnistyy uudelleen.

Useimmat järjestelmäkomponentit on kirjoitettu Rust-kielellä, joka tarjoaa muistia turvallisia ominaisuuksia, joilla vältetään haavoittuvuudet, jotka aiheutuvat vapaan muistin käytön jälkeen, nollaosoittimen viittauksista ja puskurin ylityksistä. Kun rakennetaan oletusarvoisesti, käännöstiloja "-enable-default-pie" ja "-enable-default-ssp" käytetään mahdollistamaan suoritettavan tiedoston osoiteavaruuden (PIE) satunnaistaminen ja suojaus pinon ylivuodoilta kanarian korvaamisen kautta. C/C++-kielellä kirjoitetuissa paketeissa on lisäksi liput "-Wall", "-Worror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" ja "-fstack-clash". käytössä -suojaus".

Uudessa julkaisussa:

  • RPM-paketteja asennettaessa on mahdollista luoda luettelo ohjelmista JSON-muodossa ja liittää se isäntäsäiliöön /var/lib/bottlerocket/inventory/application.json-tiedostona saadakseen tietoa saatavilla olevista paketeista.
  • "Admin" ja "control" säilöt on päivitetty.
  • Päivitetyt pakettiversiot ja riippuvuudet Go- ja Rust-kielille.
  • Päivitetyt versiot paketeista, joissa on kolmannen osapuolen ohjelmia.
  • Ratkaistu kmod-5.10-nvidian tmpfilesd-määritysongelmat.
  • Kun asennat tuftoolin, riippuvuusversiot linkitetään.

Lähde: opennet.ru

Lisää kommentti