Amazon julkaisee Bottlerocket 1.0.0:n, Linux-jakelun, joka perustuu eristettyihin säilöihin

Amazon yritys esitetty ensimmäinen merkittävä julkaisu erillisestä Linux-jakelusta Pullotaskun 1.0.0, suunniteltu kuljettamaan eristettyjä säiliöitä tehokkaasti ja turvallisesti. Jakelun työkalut ja ohjauskomponentit on kirjoitettu ruosteilla ja kielellä levitän MIT- ja Apache 2.0 -lisensseillä. Projektia kehitetään GitHubissa, ja se on yhteisön jäsenten käytettävissä. Järjestelmän käyttöönottokuva luodaan x86_64- ja Aarch64-arkkitehtuureille. Käyttöjärjestelmä on mukautettu toimimaan Amazon ECS- ja AWS EKS Kubernetes -klustereissa. Tarjotaan työkaluja omien kokoonpanojen ja versioiden luomiseen, jotka voivat käyttää muita orkestrointityökaluja, ytimiä ja ajonaikaa säilöille.

Jakelu tarjoaa Linux-ytimen ja minimaalisen järjestelmäympäristön, joka sisältää vain säilöjen suorittamiseen tarvittavat komponentit. Hankkeessa mukana olevia paketteja ovat muun muassa System Manager systemd, Glibc-kirjasto ja kokoonpanotyökalut
Buildroot, GRUB käynnistyslatain, verkkokonfiguraattori paha, suoritusaika yksittäisille konteille kontti, Kubernetes-konttiorkesterialusta, aws-iam-authenticator ja Amazon ECS -agentti.

Jakelu päivitetään atomisesti ja toimitetaan jakamattoman järjestelmäkuvan muodossa. Järjestelmälle on varattu kaksi levyosiota, joista toinen sisältää aktiivisen järjestelmän ja päivitys kopioidaan toiseen. Kun päivitys on asennettu, toinen osio aktivoituu, ja ensimmäiseen tallennetaan järjestelmän edellinen versio, kunnes seuraava päivitys saapuu, ja voit palauttaa siihen, jos ongelmia ilmenee. Päivitykset asennetaan automaattisesti ilman järjestelmänvalvojan toimia.

Keskeinen ero vastaaviin jakeluihin, kuten Fedora CoreOS, CentOS/Red Hat Atomic Host, on ensisijaisesti maksimaalinen turvallisuus järjestelmän suojauksen vahvistamisen yhteydessä mahdollisia uhkia vastaan, mikä vaikeuttaa käyttöjärjestelmän komponenttien haavoittuvuuksien hyödyntämistä ja lisää säiliöiden eristämistä. 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, ja moduulia käytetään juuriosion eheyden salaustodentamiseen. dm-verity. Jos havaitaan yritys muokata tietoja lohkolaitetasolla, järjestelmä käynnistyy uudelleen.

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.

Suurin osa järjestelmäkomponenteista 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, "--enable-default-pie" ja "--enable-default-ssp" käännöstiloja käytetään mahdollistamaan suoritettavien tiedostojen osoiteavaruuden satunnaistaminen (PIIRAKKA) ja pinon ylivuotosuoja kanaarin vaihdolla.
C/C++-kielellä kirjoitetuissa paketeissa on lisälippuja
"-Wall", "-Worror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" ja "-fstack-clash-protection".

Kontin orkestrointityökalut toimitetaan erikseen ohjaussäiliö, joka on oletuksena käytössä ja jota ohjataan kautta API ja AWS SSM -agentti. Peruskuvasta puuttuu komentokulli, SSH-palvelin ja tulkitut kielet (esim. ei Python tai Perl) - hallintatyökalut ja virheenkorjaustyökalut sijaitsevat erillinen huoltosäiliö, joka on oletuksena pois käytöstä.

Lähde: opennet.ru

Lisää kommentti