
Amazon yritys lopullisesta julkaisusta — 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 on äskettäin siirtynyt toiseen versioonsa: se on yleiskäyttöinen jakelu, jota voidaan ajaa Docker-kontissa tai hypervisoreilla Linux KVM, Microsoft Hyper-V ja VMware ESXi. Se oli optimoitu toimimaan AWS-pilviympäristössä, mutta Bottlerocketin julkaisun myötä kaikille suositellaan päivittämistä uuteen järjestelmään, joka on turvallisempi, modernimpi ja kuluttaa vähemmän resursseja.
AWS ilmoitti Bottlerocketista Hän myönsi heti, ettei tämä ollut ensimmäinen kerta.Linux konteille", mainiten inspiraation lähteinä CoreOS:n, Rancher OS:n ja Project Atomicin. Kehittäjät kirjoittivat, että käyttöjärjestelmä on "tulos niistä opeista, joita olemme oppineet Amazonin tuotantopalveluiden mittakaavassa pitkään jatkuneesta pyörittämisestä, sekä kokemuksesta, jota olemme saaneet viimeisten kuuden vuoden aikana konttien pyörittämisestä".
Äärimmäistä minimalismia
Linux Yrityksen mukaan tämä suunnittelu, jossa on poistettu kaikki konttien pyörittämiseen tarpeeton, pienentää hyökkäyspinta-alaa.
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 (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 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.

API-päivityssuunnitelma
Безопасность
Kontteja luodaan käyttämällä ytimen vakiomekanismeja. Linux — cgroups, namespaces ja seccomp, ja pakollisen käyttöoikeuksien valvonnan järjestelmänä eli lisäeristyksenä sitä käytetään "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 (), joka varmistaa juuriosion eheyden käynnistyksen aikana. AWS kuvailee dm-verity-funktiota "ytimen funktioksi Linux, joka tarjoaa eheystarkistuksen estääkseen haittaohjelmien suorittamisen käyttöjärjestelmässä, kuten pääjärjestelmäohjelmiston korvaamisen."
Järjestelmässä on myös suodatin (pidennetty BPF, ), 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
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." kehittäjät.
Ruosteen kieli
Ytimen päällä oleva käyttöjärjestelmäinstrumentointi on enimmäkseen kirjoitettu Rustilla. Tämä kieli on luonteeltaan Ja .
Lippuja käytetään oletuksena rakennuksen aikana --enable-default-pie и --enable-default-ssp mahdollistaa suoritettavien tiedostojen osoiteavaruuden satunnaistaminen (, 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 , 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 , 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 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 .
Mainonnan oikeuksista
VDSina tarjoukset . 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!
Lähde: will.com
