
Amazoni ettevĂ”te lĂ”plikust vĂ€ljaandest â 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 . 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 (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 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.

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 "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 (), 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 (laiendatud BPF, ), 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,
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,â â arendajad.
Rust keel
OS-tööriistakohv on peamiselt kirjutatud Rust'is. See keel vÀhendab oma olemuselt , samuti .
Kogumise ajal kasutatakse vaikimisi lippude --enable-default-pie ja --enable-default-ssp tĂ€idetud executables'i (, 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 , 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 , 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 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 .
Reklaami Ôigustes
VDSina pakub . 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!
Allikas: habr.com
