Minimalistinen Linux-jakelu Bottlerocket on julkaistu konttia varten. Hänestä tärkeintä

Minimalistinen Linux-jakelu Bottlerocket on julkaistu konttia varten. Hänestä tärkeintä

Amazon yritys ilmoitti lopullisesta julkaisusta Pullon tasku — erikoisjakelu konttien kuljettamiseen ja niiden tehokkaaseen hallintaan.

Bottlerocket (muuten, pienille kotitekoisille mustajauheraketteille annettu nimi) ei ole ensimmäinen käyttöjärjestelmä konteille, mutta on todennäköistä, että se tulee yleistymään oletusarvoisen integroinnin AWS-palveluihin ansiosta. Vaikka järjestelmä on keskittynyt Amazon-pilveen, avoimen lähdekoodin avulla se voidaan rakentaa minne tahansa: paikallisesti palvelimelle, Raspberry Pi:lle, missä tahansa kilpailevassa pilvessä ja jopa konttittomassa ympäristössä.

Tämä on täysin arvokas korvaus CoreOS-jakelulle, jonka Red Hat hautasi.

Itse asiassa Amazon Web Services -divisioonalla on jo Amazon Linux, joka julkaisi äskettäin toisen versionsa: se on yleiskäyttöinen jakelu, jota voidaan käyttää Docker-säiliössä tai Linux KVM:n, Microsoft Hyper-V:n ja VMwaren kanssa. ESXi hypervisorit. Se optimoitiin toimimaan AWS-pilvessä, mutta Bottlerocketin julkaisun myötä kaikkia rohkaistaan ​​päivittämään uuteen järjestelmään, joka on turvallisempi, nykyaikaisempi ja vähemmän resursseja käyttävä.

AWS ilmoitti Bottlerocketista maaliskuussa 2020. Hän myönsi heti, että tämä ei ole ensimmäinen "Linux konteille", ja mainitsi CoreOS:n, Rancher OS:n ja Project Atomicin inspiraation lähteinä. Kehittäjät kirjoittivat, että käyttöjärjestelmä on "tulos oppitunneista, joita olemme oppineet suorittamalla tuotantopalveluita Amazonin mittakaavassa pitkään, ja kokemuksista, joita olemme saaneet viimeisen kuuden vuoden aikana konttien käyttämisestä".

Äärimmäistä minimalismia

Linuxista on poistettu kaikki, mitä ei tarvita säiliöiden suorittamiseen. Tämä suunnittelu vähentää yrityksen mukaan hyökkäyspintaa.

Tämä tarkoittaa, että perusjärjestelmään asennetaan vähemmän paketteja, mikä helpottaa käyttöjärjestelmän ylläpitoa ja päivittämistä ja vähentää myös riippuvuuksista johtuvien ongelmien todennäköisyyttä, mikä vähentää resurssien käyttöä. Periaatteessa kaikki täällä toimii erillisten säiliöiden sisällä, ja taustalla oleva järjestelmä on käytännössä paljas.

Amazon on myös poistanut kaikki kuoret ja tulkit, mikä eliminoi riskin, että niitä käytetään tai käyttäjät voivat vahingossa laajentaa oikeuksiaan. Minimalismin ja turvallisuuden vuoksi peruskuva ei sisällä komentokullia, SSH-palvelinta tai tulkittuja kieliä, kuten Python. Järjestelmänvalvojan työkalut sijoitetaan erilliseen palvelusäiliöön, joka on oletuksena poistettu käytöstä.

Järjestelmää hallitaan kahdella tavalla: API:n ja orkestroinnin kautta.

Yksittäisiä ohjelmistoja päivittävän paketinhallinnan sijaan Bottlerocket lataa täydellisen tiedostojärjestelmän kuvan ja käynnistää sen uudelleen. Jos lataus epäonnistuu, se palautuu automaattisesti, ja työkuorman virhe voi laukaista palautuksen manuaalisesti (komento API:n kautta).

puitteissa TUF (The Update Framework) lataa kuvapohjaiset päivitykset vaihtoehtoisiin tai "liittämättömiin" osioihin. Järjestelmälle on varattu kaksi levyosiota, joista toinen sisältää aktiivisen järjestelmän ja päivitys kopioidaan toiseen. Tässä tapauksessa juuriosio asennetaan vain luku -tilassa ja osio /etc asennettu tiedostojärjestelmän kanssa RAM-muistiin tmpfs ja palauttaa alkuperäisen tilan uudelleenkäynnistyksen jälkeen. Määritystiedostojen suora muokkaaminen sisään /etc ei tueta: tallentaaksesi asetukset sinun tulee käyttää API:ta tai siirtää toiminnallisuus erillisiin säilöihin.

Minimalistinen Linux-jakelu Bottlerocket on julkaistu konttia varten. Hänestä tärkeintä
API-päivityssuunnitelma

Безопасность

Säilöt luodaan Linux-ytimen vakiomekanismeilla - cgroups, namespaces ja seccomp, ja niitä käytetään pakotettuna pääsynhallintajärjestelmänä eli lisäeristykseen. SELinux "pakko"-tilassa.

Oletuksena käytännöt ovat käytössä resurssien jakamiseksi säilöjen ja ytimen välillä. Binaarit on suojattu lipuilla estämään käyttäjiä tai ohjelmia suorittamasta niitä. Ja jos pääset tiedostojärjestelmään, Bottlerocket tarjoaa työkalun tehtyjen muutosten tarkistamiseen ja seuraamiseen.

"Verified boot" -tila toteutetaan laite-mapper-verity-toiminnolla (dm-verity), joka tarkistaa juuriosion eheyden käynnistyksen aikana. AWS kuvailee dm-verityä "Linux-ytimen ominaisuudeksi, joka tarjoaa eheystarkistuksia estääkseen haittaohjelmien suorittamisen käyttöjärjestelmässä, kuten ydinjärjestelmän ohjelmistojen korvaamisen."

Järjestelmässä on myös suodatin eGMP (pidennetty BPF, kehittäjä Aleksei Starovoitov), jonka avulla ydinmoduulit voidaan korvata turvallisemmilla BPF-ohjelmilla matalan tason järjestelmätoimintoihin.

Toteutusmalli
Käyttäjän määrittelemä
Kokoelma
Безопасность
Virhetila
Pääsy resursseihin

käyttäjä
tehtävä
kyllä
kaikki
käyttöoikeudet
keskeyttää suoritus
järjestelmäkutsu, vika

Ydin
tehtävä
ei
staattinen
ei
ytimen paniikki
прямой

BPF
tapahtuma
kyllä
JIT, CO-RE
tarkastus, JIT
virheviesti
rajalliset avustajat

Miten BPF eroaa tavallisesta käyttäjä- tai ydintason koodista lähde

AWS sanoi, että Bottlerocket "käyttää toimintamallia, joka lisää turvallisuutta entisestään estämällä yhteydet tuotantopalvelimiin, joilla on järjestelmänvalvojan oikeudet" ja "sopii suuriin hajautettuihin järjestelmiin, joissa kunkin yksittäisen isäntä on rajoitettu".

Järjestelmänvalvojille tarjotaan järjestelmänvalvojan säilö. Mutta AWS ei usko, että järjestelmänvalvojan tarvitsee usein työskennellä Bottlerocketin sisällä: "Erilliseen Bottlerocket-esiintymään kirjautuminen on tarkoitettu harvoin tapahtuviin toimintoihin: edistyneeseen virheenkorjaukseen ja vianetsintään." kirjoittaa kehittäjät.

Ruosteen kieli

Ytimen päällä oleva käyttöjärjestelmäinstrumentointi on enimmäkseen kirjoitettu Rustilla. Tämä kieli on luonteeltaan vähentää vaarallisen muistin käytön todennäköisyyttäJa eliminoi kilpailuolosuhteet lankojen välistä.

Lippuja käytetään oletuksena rakennuksen aikana --enable-default-pie и --enable-default-ssp mahdollistaa suoritettavien tiedostojen osoiteavaruuden satunnaistaminen (sijainnista riippumaton suoritettava tiedosto, PIE) ja pinon ylivuotosuoja.

C/C++-paketteihin sisältyy lisälippuja -Wall, -Werror=format-security, -Wp,-D_FORTIFY_SOURCE=2, -Wp,-D_GLIBCXX_ASSERTIONS и -fstack-clash-protection.

Rustin ja C/C++:n lisäksi osa paketeista on kirjoitettu Go-kielellä.

Integrointi AWS-palveluihin

Erona vastaaviin konttikäyttöjärjestelmiin on se, että Amazon on optimoinut Bottlerocketin toimimaan AWS:ssä ja integroitumaan muihin AWS-palveluihin.

Suosituin konttiorkesteri on Kubernetes, joten AWS on ottanut käyttöön integraation oman Enterprise Kubernetes -palvelunsa (EKS) kanssa. Orkesterityökalut toimitetaan erillisessä ohjauslaatikossa pullonraketin ohjauskontti, joka on oletuksena käytössä ja jota hallitaan API:n ja AWS SSM Agentin kautta.

On mielenkiintoista nähdä, lähteekö Bottlerocket nousuun, kun otetaan huomioon joidenkin vastaavien aloitteiden epäonnistuminen aiemmin. Esimerkiksi Vmwaren PhotonOS osoittautui lunastamattomaksi, ja RedHat osti CoreOS:n ja sulki projektin, jota pidettiin alan edelläkävijänä.

Bottlerocketin integrointi AWS-palveluihin tekee tästä järjestelmästä ainutlaatuisen omalla tavallaan. Tämä on ehkä tärkein syy siihen, miksi jotkut käyttäjät saattavat suosia Bottlerocketia muihin distroihin, kuten CoreOS:ään tai Alpiseen. Järjestelmä on alun perin suunniteltu toimimaan EKS:n ja ECS:n kanssa, mutta toistamme, että tämä ei ole välttämätöntä. Ensinnäkin Bottlerocket voi koota itse ja käyttää sitä esimerkiksi isännöitynä ratkaisuna. Toiseksi EKS- ja ECS-käyttäjillä on edelleen mahdollisuus valita käyttöjärjestelmänsä.

Bottlerocket-lähdekoodi on julkaistu GitHubissa Apache 2.0 -lisenssillä. Kehittäjät ovat jo vastata vikailmoituksiin ja ominaisuuspyyntöihin.

Mainonnan oikeuksista

VDSina tarjoukset VDS päivittäisellä maksulla. On mahdollista asentaa mikä tahansa käyttöjärjestelmä, myös omasta kuvasta. Jokainen palvelin on yhdistetty 500 megabitin Internet-kanavaan ja on suojattu DDoS-hyökkäyksiltä ilmaiseksi!

Minimalistinen Linux-jakelu Bottlerocket on julkaistu konttia varten. Hänestä tärkeintä

Lähde: will.com

Lisää kommentti