Një shpërndarje minimaliste Linux, Bottlerocket, është lëshuar për drejtimin e kontejnerëve. Gjëja më e rëndësishme për të

Një shpërndarje minimaliste Linux, Bottlerocket, është lëshuar për drejtimin e kontejnerëve. Gjëja më e rëndësishme për të

Kompania Amazon i shpallur në lidhje me lëshimin përfundimtar Këllëfi i shisheve — një shpërndarje e specializuar për drejtimin e kontejnerëve dhe menaxhimin efektiv të tyre.

Bottlerocket (nga rruga, emri i dhënë për raketat e vogla të bëra vetë me pluhur të zi) nuk është OS i parë për kontejnerë, por ka të ngjarë që ai të bëhet i përhapur falë integrimit të paracaktuar me shërbimet AWS. Edhe pse sistemi është i fokusuar në renë e Amazonës, kodi me burim të hapur e lejon atë të ndërtohet kudo: lokalisht në një server, në një Raspberry Pi, në çdo re konkurruese dhe madje edhe në një mjedis pa kontejnerë.

Ky është një zëvendësim plotësisht i denjë për shpërndarjen CoreOS që varrosi Red Hat.

Në fakt, divizioni i Shërbimeve Ueb të Amazon ka tashmë Amazon Linux, i cili së fundmi doli në versionin e tij të dytë: është një shpërndarje me qëllime të përgjithshme që mund të ekzekutohet në një kontejner Docker ose me Linux KVM, Microsoft Hyper-V dhe VMware. Hipervizorët ESXi. Ai u optimizua për të ekzekutuar në renë AWS, por me lëshimin e Bottlerocket, të gjithë inkurajohen të përmirësohen në një sistem të ri që është më i sigurt, modern dhe përdor më pak burime.

AWS njoftoi Bottlerocket në Mars 2020. Ajo menjëherë pranoi se ky nuk është i pari "Linux për kontejnerë", duke përmendur CoreOS, Rancher OS dhe Project Atomic si burime frymëzimi. Zhvilluesit shkruajnë se sistemi operativ është "rezultat i mësimeve që kemi mësuar nga drejtimi i shërbimeve të prodhimit në shkallën e Amazon për një kohë të gjatë, dhe përvojës që kemi fituar gjatë gjashtë viteve të fundit për mënyrën e përdorimit të kontejnerëve".

Minimalizëm ekstrem

Linux është i zhveshur nga gjithçka që nuk është e nevojshme për të drejtuar kontejnerët. Ky dizajn, sipas kompanisë, zvogëlon sipërfaqen e sulmit.

Kjo do të thotë që më pak paketa janë instaluar në sistemin bazë, gjë që e bën më të lehtë mirëmbajtjen dhe përditësimin e sistemit operativ, si dhe zvogëlon mundësinë e problemeve për shkak të varësive, duke reduktuar përdorimin e burimeve. Në thelb, gjithçka këtu funksionon brenda kontejnerëve të veçantë, dhe sistemi themelor është praktikisht i zhveshur.

Amazon ka hequr gjithashtu të gjitha predhat dhe interpretuesit, duke eliminuar rrezikun e përdorimit të tyre ose përshkallëzimin aksidental të privilegjeve nga përdoruesit. Për hir të minimalizmit dhe sigurisë, imazhi bazë nuk përfshin një guaskë komandimi, një server SSH ose gjuhë të interpretuara si Python. Mjetet e administratorit vendosen në një kontejner shërbimi të veçantë, i cili është i çaktivizuar si parazgjedhje.

Sistemi menaxhohet në dy mënyra: përmes API-së dhe orkestrimit.

Në vend të një menaxheri paketash që përditëson pjesë të veçanta të softuerit, Bottlerocket shkarkon një imazh të plotë të sistemit të skedarëve dhe rindizet në të. Nëse një ngarkesë dështon, ajo automatikisht kthehet prapa dhe një dështim i ngarkesës së punës mund të shkaktojë një rikthim me dorë (komandë nëpërmjet API).

Korniza TUF (Korniza e Përditësimit) shkarkon përditësime të bazuara në imazhe në ndarje alternative ose "të pamontuara". Dy ndarje disku janë ndarë për sistemin, njëra prej të cilave përmban sistemin aktiv dhe përditësimi kopjohet në të dytin. Në këtë rast, ndarja rrënjë është montuar në modalitetin vetëm për lexim, dhe ndarja /etc montuar me sistemin e skedarëve në RAM tmpfs dhe rikthen gjendjen origjinale pas një rinisjeje. Modifikimi i drejtpërdrejtë i skedarëve të konfigurimit në /etc nuk mbështetet: për të ruajtur cilësimet, duhet të përdorni API ose ta zhvendosni funksionalitetin në kontejnerë të veçantë.

Një shpërndarje minimaliste Linux, Bottlerocket, është lëshuar për drejtimin e kontejnerëve. Gjëja më e rëndësishme për të
Skema e përditësimit të API

siguri

Kontejnerët krijohen nga mekanizmat standardë të kernelit Linux - cgroups, hapësirat e emrave dhe seccomp, dhe përdoren si një sistem kontrolli i hyrjes së detyruar, domethënë për izolim shtesë. SELinux në modalitetin "zbatues".

Si parazgjedhje, politikat janë të aktivizuara për të ndarë burimet midis kontejnerëve dhe kernelit. Binarët mbrohen me flamuj për të parandaluar përdoruesit ose programet që t'i ekzekutojnë ato. Dhe nëse dikush arrin te sistemi i skedarëve, Bottlerocket ofron një mjet për të kontrolluar dhe gjurmuar çdo ndryshim të bërë.

Modaliteti "boot i verifikuar" zbatohet përmes funksionit device-mapper-verity (dm-vërtetësi), i cili kontrollon integritetin e ndarjes rrënjë gjatë nisjes. AWS e përshkruan dm-verity si "një tipar i kernelit Linux që siguron kontrolle të integritetit për të parandaluar funksionimin e malware në OS, si p.sh. mbishkrimi i softuerit bazë të sistemit."

Ekziston edhe një filtër në sistem eGMP (BPF i zgjeruar, zhvilluar nga Alexey Starovoitov), i cili lejon që modulet e kernelit të zëvendësohen me programe më të sigurta BPF për operacionet e sistemit të nivelit të ulët.

Modeli i ekzekutimit
Perdorues i percaktuar
Përpilimi
siguri
Modaliteti i dështimit
Qasja në burime

Përdoruesi
detyrë
po
ndonjë
drejtat e përdoruesit
ndërprerja e ekzekutimit
thirrje sistemi, defekt

Thelbi
detyrë
jo
statike
jo
paniku i bërthamës
drejt

BPF
ngjarje
po
JIT, CO-RE
verifikimi, JIT
mesazh gabimi
ndihmës të kufizuar

Si ndryshon BPF nga kodi i zakonshëm i përdoruesit ose i nivelit të kernelit burim

AWS tha se Bottlerocket "punon një model operativ që rrit më tej sigurinë duke parandaluar lidhjet me serverët e prodhimit me privilegje administrative" dhe është "i përshtatshëm për sisteme të mëdha të shpërndara ku kontrolli mbi çdo host individual është i kufizuar".

Një kontejner administratori ofrohet për administratorët e sistemit. Por AWS nuk mendon se një administrator shpesh do të duhet të punojë brenda Bottlerocket: "Akti i hyrjes në një shembull të veçantë Bottlerocket është menduar për operacione të rralla: korrigjimi i avancuar dhe zgjidhjen e problemeve." ata shkruajnë zhvilluesit.

Gjuha e ndryshkut

Instrumentimi i OS në krye të kernelit është shkruar kryesisht në Rust. Kjo gjuhë është nga natyra e saj zvogëlon mundësinë e aksesit të pasigurt në kujtesëDhe eliminon kushtet e garës midis fijeve.

Flamujt aplikohen si parazgjedhje gjatë ndërtimit --enable-default-pie и --enable-default-ssp për të mundësuar randomizimin e hapësirës së adresave të skedarëve të ekzekutueshëm (ekzekutues i pavarur nga pozicioni, PIE) dhe mbrojtje nga tejmbushja e pirgut.

Për paketat C/C++, përfshihen flamuj shtesë -Wall, -Werror=format-security, -Wp,-D_FORTIFY_SOURCE=2, -Wp,-D_GLIBCXX_ASSERTIONS и -fstack-clash-protection.

Përveç Rust dhe C/C++, disa paketa janë shkruar në Go.

Integrimi me shërbimet AWS

Dallimi nga sistemet operative të kontejnerëve të ngjashëm është se Amazon ka optimizuar Bottlerocket për të funksionuar në AWS dhe për t'u integruar me shërbime të tjera AWS.

Orkestratori më i popullarizuar i kontejnerëve është Kubernetes, kështu që AWS ka prezantuar integrimin me Shërbimin e vet Kubernetes të Ndërmarrjeve (EKS). Mjetet e orkestrimit vijnë në një enë të veçantë kontrolli shishe-kontroll-enë, i cili aktivizohet si parazgjedhje dhe menaxhohet përmes API dhe Agjentit AWS SSM.

Do të jetë interesante të shihet nëse Bottlerocket do të fillojë, duke pasur parasysh dështimin e disa nismave të ngjashme në të kaluarën. Për shembull, PhotonOS nga Vmware doli të ishte i padeklaruar dhe RedHat bleu CoreOS dhe mbylli projektin, i cili konsiderohej si pionier në këtë fushë.

Integrimi i Bottlerocket në shërbimet AWS e bën këtë sistem unik në mënyrën e vet. Kjo është ndoshta arsyeja kryesore pse disa përdorues mund të preferojnë Bottlerocket mbi shpërndarjet e tjera si CoreOS ose Alpine. Sistemi fillimisht është krijuar për të punuar me EKS dhe ECS, por ne përsërisim se kjo nuk është e nevojshme. Së pari, Bottlerocket mund mblidheni vetë dhe e përdorin atë, për shembull, si një zgjidhje të pritur. Së dyti, përdoruesit e EKS dhe ECS do të kenë ende aftësinë për të zgjedhur sistemin e tyre operativ.

Kodi burimor i Bottlerocket publikohet në GitHub nën licencën Apache 2.0. Zhvilluesit tashmë kanë përgjigjuni raporteve të gabimeve dhe kërkesave për veçori.

Për të Drejtat e Reklamimit

VDSina ofertat VDS me pagesë ditore. Është e mundur të instaloni çdo sistem operativ, përfshirë nga imazhi juaj. Çdo server është i lidhur me një kanal interneti prej 500 Megabitësh dhe mbrohet nga sulmet DDoS falas!

Një shpërndarje minimaliste Linux, Bottlerocket, është lëshuar për drejtimin e kontejnerëve. Gjëja më e rëndësishme për të

Burimi: www.habr.com

Shto një koment