Ilmus minimalistlik Linuxi distributsioon Bottlerocket, et kÀivitada konteinerid. KÔik olulisemad faktid selle kohta.

Ilmus minimalistlik Linuxi distributsioon Bottlerocket, et kÀivitada konteinerid. KÔik olulisemad faktid selle kohta.

Amazoni ettevĂ”te teatas lĂ”plikust vĂ€ljaandest Bottlerocket — spetsialiseeritud jaotamine konteinerite kĂ€itamiseks ja tĂ”husaks haldamiseks.

Bottlerocket (muide, nii nimetatakse vĂ€ikeseid kĂ€sitsi valmistatud rakette suitsupulbri abil) ei ole esimene konteinerite operatsioonisĂŒsteem, kuid tĂ”enĂ€oliselt saavutab ta laialdase kasutuse tĂ€nu vaikimisi integreerimisele AWS teenustega. Kuigi sĂŒsteem on suunatud Amazoni pilvele, vĂ”imaldab avatud lĂ€htekood selle kogumist igal pool: kohapeal serveris, Raspberry Pi-s, igas konkurentsivĂ”imelises pilves ja isegi konteineriteta keskkonnas.

See on tÀiesti vÀÀrikas asendus CoreOS jaotusele, mille Red Hat matnud on.

Amazon Web Servicesil on tegelikult juba Amazon Linux, mis hiljuti ilmus teise versioonina: see on ĂŒldotstarbeline jaotus, mida saab kĂ€ivitada Docker konteineris vĂ”i Linux KVM, Microsoft Hyper-V ja VMware ESXi hĂŒperviisoritega. See on optimeeritud AWS pilves töötamiseks, kuid Bottlerocketi vĂ€ljumisega soovitavad kĂ”ik kaasa minna uue sĂŒsteemi, mis on turvalisem, kaasaegsem ja nĂ”uab vĂ€hem ressursse.

AWS kuulutas Bottlerocketi vĂ€lja mĂ€rtsis 2020. EttevĂ”te tunnustas kohe, et see ei ole esimene "Linux konteineritele", tuues inspiratsiooniallikatena vĂ€lja CoreOS, Rancher OS ja Project Atomic. Arendajad ĂŒtlesid, et operatsioonisĂŒsteem on "tulemuseks Ă”ppetundidest, mida oleme ammutanud pikaajaliste tootmisvĂ”imaluste kaudu Amazonis ning kuue aasta jooksul, kuidas konteinerite kĂ€itamine toob".

Ekstreemne minimalism

Linux on puhastatud kĂ”igest, mis pole konteinerite kĂ€itamiseks vajalik. Selline disain vĂ€hendab ettevĂ”tte sĂ”nul rĂŒnnaku pinda.

See tĂ€hendab, et pĂ”hikomplekti installitakse vĂ€hem pakette, mis lihtsustab operatsioonisĂŒsteemi hooldust ja uuendamist ning vĂ€hendab sĂ”ltuvusprobleemide tekkimise tĂ”enĂ€osust, vĂ€hendades ressursikasutust. Üldiselt töötab kĂ”ik siin eraldi konteinerite sees, samas kui pĂ”hisisu on praktiliselt paljas.

Amazon on eemaldanud kĂ”ik shellid ja tĂ”lgendid, vĂ€listades seelĂ€bi kasutajate privileegide tĂ”usu riski. Baaspildis puuduvad minimalistlikkuse ja turvalisuse huvides kĂ€skluste shell, SSH-server ja interpreteeritavad keeled nagu Python. Administratori tööriistad on viidud eraldi teenindus konteinerisse, mis on vaikimisi vĂ€lja lĂŒlitatud.

SĂŒsteemi haldamine on ette nĂ€htud kahe meetodi kaudu: API ja orkestreerimise kaudu.

Pakettide halduri asemel, mis uuendab tarkvara osi, laadib Bottlerocket alla tĂ€ieliku failisĂŒsteemi pildi ja taaskĂ€ivitub sellesse. KĂ€ivitamise ebaĂ”nnestumise korral taastub see automaatselt ning töökoormuse ebaĂ”nnestumine vĂ”ib algatada kĂ€sitsi tagasivisu (kĂ€sk API kaudu).

Raamistik TUF (The Update Framework) laadib vĂ€rskendused alternatiivsetesse vĂ”i "lahutatud" partitsioonidesse. SĂŒsteemi jaoks eraldatakse kaks ketta partitsiooni, millest ĂŒks sisaldab aktiivset sĂŒsteemi ning teine kopeerib vĂ€rskenduse. Seejuures on juurepartitsioon monteeritud ainult lugemisreĆŸiimis, samas kui partitsioon /etc on monteeritud RAM-i failisĂŒsteemiga tmpfs ja taastab algse oleku pĂ€rast taaskĂ€ivitamist. Konfiguratsioonifailide otsene muutmine /etc ei ole toetatud: seadete salvestamiseks tuleks kasutada API-d vĂ”i viia funktsionaalsus eraldi konteineritesse.

Ilmus minimalistlik Linuxi distributsioon Bottlerocket, et kÀivitada konteinerid. KÔik olulisemad faktid selle kohta.
VĂ€rskendamise skeem API kaudu

Turvalisus

Konteinerid luuakse Linuxi tuuma sisseehitatud mehhanismide, nagu cgroups, nimeruumid ja seccomp, abil, samas kui sundkontrolli sĂŒsteem, et tagada tĂ€iendav isoleeritus, on SELinux "enforcing" reĆŸiimis.

Vaikimisi on aktiveeritud poliitikad ressursside jagamiseks konteinerite ja tuuma vahel. Binaarid on kaitstud lippudega, et kasutajad vĂ”i programmid ei saaks neid kĂ€ivitada. Ja kui keegi pÀÀseb failisĂŒsteemi, pakub Bottlerocket tööriista muudatuste kontrollimiseks ja jĂ€lgimiseks.

"Kontrollitud kĂ€ivitamise" reĆŸiim on realiseeritud funktsiooni device-mapper-verity kaudu (dm-verity), mis kontrollib juurpartitsiooni terviklikkust kĂ€ivitamise ajal. AWS kirjeldab dm-verity't kui „Linuxi tuumafunktsiooni, mis tagab terviklikkuse kontrollimise, et vĂ€ltida pahatahtlike programmide tööle asumist opsĂŒsteemis, nĂ€iteks pĂ”hikoodeksi ĂŒlekirjutamine”.

SĂŒsteemis on ka filter eBPF (laiendatud BPF, Arendaja Aleksei Starovoitov), mis vĂ”imaldab asendada tuumamooduleid turvalisemate BPF programmidega madala taseme sĂŒsteemsete operatsioonide jaoks.

TĂ€itev mudel
Kasutaja mÀÀratud
Kompileerimine
Turvalisus
RikkereĆŸiim
LigipÀÀs ressurssidele

Kasutaja
ĂŒlesanne
jah
igal
kasutaja Ôigused
tÀitmise katkestamine
sĂŒsteemikĂ”ne, viga

Tuuma
ĂŒlesanne
ei
staatiline
ei
tuumapaanika
otsene

BPF
sĂŒndmus
jah
JIT, CO-RE
verifikatsioon, JIT
veateade
piiratud abistajad

BPF erineb tavalisest kasutaja vÔi tuuma taseme koodist, allikas

AWS teatas, et Bottlerocket „rakendab operatsioonimudelit, mis veelgi suurendab turvalisust, takistades ĂŒhendusi tootmisserveritega administraatori privileegidega” ja „sobib suurtele jaotatud sĂŒsteemidele, mille puhul on piiratud kontroll iga ĂŒksiku hosti ĂŒle”.

SĂŒsteemi administraatoritele on ette nĂ€htud administraatori konteiner. Kuid AWS ei arva, et administraator peab sageli Bottlerocketis töötama: „Sisenemine ĂŒksikusse Bottlerocketi instantsse on ette nĂ€htud harvade toimingute jaoks: laiendatud tĂ”rkeotsingu ja veaotsingu jaoks,” — ĂŒtlevad arendajad.

Rust keel

OS-tööriistakohv on peamiselt kirjutatud Rust'is. See keel vÀhendab oma olemuselt mÀlule ligipÀÀsu kahjustamise tÔenÀosust, samuti kÔrvaldades lÔppede vahelist vÔistlemist.

Kogumise ajal kasutatakse vaikimisi lippude --enable-default-pie ja --enable-default-ssp tĂ€idetud executables'i (asukoht sĂ”ltumatu tĂ€idetav, PIE) ja virna ĂŒlekoormuse kaitse.

C/C++ pakettide jaoks lisatakse tÀiendavad lipud -Wall, -Werror=format-security, -Wp,-D_FORTIFY_SOURCE=2, -Wp,-D_GLIBCXX_ASSERTIONS ja -fstack-clash-protection.

Lisaks Rustile ja C/C++'le on mÔned pakettide kirjutatud Go keeles.

AWS teenustega integreerimine

Erinevus seda tĂŒĂŒpi konteinerite opsĂŒsteemide vahel on see, et Amazon on optimeerinud Bottlerocketi töötamiseks AWS-is ja integreerimiseks teiste AWS teenustega.

Kubernetes on kĂ”ige populaarsem konteinerite orkestreerija, seetĂ”ttu integreeris AWS enda Enterprise Kubernetes Service'i (EKS). Orkestreerimise tööriistad tulevad eraldi halduskonteineris bottlerocket-control-container, mis on vaikimisi sisse lĂŒlitatud ja mida hallatakse API ja AWS SSM Agendi kaudu.

Huvitav on nĂ€ha, kas Bottlerocket tĂ”useb, arvestades, et mĂ”ned sarnased algatused on minevikus ebaĂ”nnestunud. NĂ€iteks jĂ€i Vmware’i PhotonOS kasutamatuks ning RedHat ostis CoreOS ja sulges projekti, mida peeti antud valdkonna pioneeriks.

Bottlerocket’i integreerimine AWS teenustesse muudab selle sĂŒsteemi omaette ainulaadseks. VĂ”ib-olla on see peamine pĂ”hjus, miks mĂ”ned kasutajad vĂ”ivad eelistada Bottlerocket’i teistele distributsioonidele nagu CoreOS vĂ”i Alpine. SĂŒsteem on algselt projekteeritud töötama EKS ja ECS-iga, kuid korrates, see ei ole kohustuslik. Esiteks, Bottlerocket’i saab ise kokku panna ja kasutada nĂ€iteks hosted-lahendusena. Teiseks sĂ€ilitavad EKS ja ECS kasutajad siiski operatsioonisĂŒsteemi valikuvĂ”imaluse.

Bottlerocket’i lĂ€htekood on avalikustatud GitHubis Apache 2.0 litsentsi all. Arendajad juba reaktsioonid vigade raportitele ja funktsioonipĂ€ringutele.

Reklaami Ôigustes

VDSina pakub VDS pĂ€evase tasuga. IgaĂŒks saab installida mistahes operatsioonisĂŒsteemi, sealhulgas oma pildist. Iga server on ĂŒhendatud 500 Mbit internetikanaliga ja on tasuta kaitstud DDoS rĂŒnnakute eest!

Ilmus minimalistlik Linuxi distributsioon Bottlerocket, et kÀivitada konteinerid. KÔik olulisemad faktid selle kohta.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster