Linux-jakelun Bottlerocket 1.8.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:
- Hallinto- ja valvontakonttien sisältö on päivitetty.
- Eristettyjen säiliöiden ajonaika on päivitetty 1.6.x-konttihaaraan.
- Varmistaa, että säilöjen toimintaa koordinoivat taustaprosessit käynnistetään uudelleen varmennevarastoon tehtyjen muutosten jälkeen.
- On mahdollista asettaa ytimen käynnistysparametrit Boot Configuration -osiossa.
- Tyhjien lohkojen huomioimatta jättäminen käytössä, kun juuriosion eheyttä valvotaan dm-verityn avulla.
- Mahdollisuus staattisesti sitoa isäntänimiä tiedostossa /etc/hosts on tarjottu.
- Mahdollisuus luoda verkkomääritykset netdog-apuohjelmalla on tarjottu (komento generate-net-config on lisätty).
- Uusia jakeluvaihtoehtoja Kubernetes 1.23:n tuella on ehdotettu. Kubernetesin podien käynnistysaikaa on lyhennetty poistamalla configMapAndSecretChangeDetectionStrategy-tila käytöstä. Lisätty uudet kubelet-asetukset: tarjoaja-id ja podPidsLimit.
- Amazon Elastic Container Servicen (Amazon ECS) jakelusarjasta "aws-ecs-1-nvidia" on ehdotettu uutta versiota, joka toimitetaan NVIDIA-ajureilla.
- Lisätty tuki Microchip Smart Storage- ja MegaRAID SAS -tallennuslaitteille. Broadcom-sirujen Ethernet-korttien tukea on laajennettu.
- Päivitetyt pakettiversiot ja riippuvuudet Go- ja Rust-kielille sekä versiot paketeista, joissa on kolmannen osapuolen ohjelmia. Bottlerocket SDK on päivitetty versioon 0.26.0.
Lähde: opennet.ru