Doli distribucioni minimalist i Linux, Bottlerocket, për të nisur kontejnerët. Më e rëndësishmja për të

Doli distribucioni minimalist i Linux, Bottlerocket, për të nisur kontejnerët. Më e rëndësishmja për të

Kompania Amazon njoftoi pĂ«r publikimin pĂ«rfundimtar Bottlerocket — njĂ« distribucion i specializuar pĂ«r ekzekutimin e kontejnerĂ«ve dhe menaxhimin e tyre nĂ« mĂ«nyrĂ« efikase.

Bottlerocket (pĂ«r rastin, kĂ«shtu quhen raketat e vogla tĂ« bĂ«ra nĂ« shtĂ«pi me barut tymi) — nuk Ă«shtĂ« sistemi i parĂ« operativ pĂ«r kontejnerĂ«, por ka shumĂ« gjasa qĂ« tĂ« fitojĂ« pĂ«rhapje tĂ« madhe falĂ« integrimit tĂ« tij tĂ« paracaktuar me shĂ«rbimet AWS. MegjithĂ«se sistemi Ă«shtĂ« orientuar pĂ«r re Amazon, kodi i hapur lejon qĂ« tĂ« ndĂ«rtohet kudo: lokal nĂ« server, nĂ« Raspberry Pi, nĂ« çdo re konkuruese dhe madje edhe nĂ« njĂ« mjedis pa kontejnerĂ«.

Kjo është një zëvendësim shumë i denjë për distribucionin CoreOS, të cilin Red Hat e shpalli të vdekur.

Në fakt, departamenti i Amazon Web Services tashmë ka Amazon Linux, i cili sapo ka dalë në versionin e tij të dytë: është një distribucion i përgjithshëm që mund të ekzekutohet në një kontejner Docker ose me hipervizorët Linux KVM, Microsoft Hyper-V dhe VMware ESXi. Ai është optimizuar për funksionimin në re AWS, por me daljen e Bottlerocket gjithkujt i rekomandohet të bëjë përditësimin në sistemin e ri, i cili është më i sigurt, modern dhe konsumon më pak burime.

AWS e shpalli Bottlerocket në mars 2020. Ajo e pranoi menjëherë se kjo nuk është "Linux për kontejnerë" i parë, duke përmendur si burime frymëzimi CoreOS, Rancher OS dhe Project Atomic. Zhvilluesit shkruan se sistemi operativ është "rezultati i mësimeve që kemi nxjerrë gjatë një periudhe të gjatë pune me shërbime prodhimi në shkallë të madhe në Amazon, dhe me përvojën që kemi fituar gjatë gjashtë viteve të fundit mbi se si të ekzekutojmë kontejnerë."

Minimalizmi ekstrem

Linux është pastruar nga gjithçka që nuk është e nevojshme për ekzekutimin e kontejnerëve. Ky dizajn, sipas kompanisë, redukton sipërfaqen e sulmit.

Kjo do të thotë se në sistemin bazë instalohen më pak paketa, gjë që thjeshton mbështetje dhe përditësimin e sistemit operativ, si dhe ul probabilitetin e ndodhisë së problemeve për shkak të varësive, duke zvogëluar përdorimin e burimeve. Në thelb, gjithçka funksionon brenda kontejnerëve të veçantë, ndërsa sistemi bazë është pothuajse i zbrazët.

Amazon gjithashtu e ka hequr çdo shell dhe interpretor, duke përjashtuar rrezikun e përdorimit të tyre ose rritjen aksidentale të privilegjeve nga përdoruesit. Në imazhin bazë, për shkak të minimalizmit dhe sigurisë, nuk ka një shell komandash, server SSH dhe gjuhë interpretuese si Python. Mjetet për administratorin janë transferuar në një kontejner shërbimi të veçantë, i cili është i çaktivizuar nga parazgjedhja.

Menaxhimi i sistemit parashikohet në dy mënyra: përmes API-së dhe orkestrimit.

Në vend të menaxherit të paketave, i cili përditëson pjesë të veçanta të softuerit, Bottlerocket shkarkon një imazh të plotë të sistemit të skedarëve dhe ridërrgon në të. Në rast të dështimit të ngarkesës, ai automatikisht kthehet pas, dhe dështimi i ngarkesës mund të inicojë rikthimin manual (komandë përmes API-së).

Korniza TUF (The Update Framework) shkarkon përditësime të bazuara në imazhe në seksione alternative ose "të shkëputura". Në sistem parashikohet dy seksione të diskut, njëra prej të cilave përmban sistemin aktiv, ndërsa tjetra kopjon përditësimin. Në këtë rast, seksioni rrënjor montohet në mënyrë vetëm për lexim, ndërsa seksioni /etc montohet me sistemin e skedarëve në memorjen e përkohshme tmpfs dhe rikthen gjendjen origjinale pas rifillimit. Ndryshimi direkt i skedarëve të konfigurimit në /etc nuk mbështetet: për të ruajtur cilësimet duhet të përdoren API ose të transferohet funksionaliteti në kontejnerë të veçantë.

Doli distribucioni minimalist i Linux, Bottlerocket, për të nisur kontejnerët. Më e rëndësishmja për të
Shtesa e përditësimit përmes API-së

Siguria

KontejnerĂ«t krijohen me mekanizmat standard tĂ« bĂ«rthamĂ«s Linux — cgroups, hapĂ«sira emrash dhe seccomp, dhe si sistem tĂ« kontrollit tĂ« detyrueshĂ«m pĂ«r qasjen, pra pĂ«r izolim tĂ« mĂ«tejshĂ«m pĂ«rdoret SELinux nĂ« modin "enforcing".

Si rregull, politikat për ndarjen e burimeve midis kontejnerëve dhe bërthamës janë të aktivizuara. Binarët janë të mbrojtur me flagje, që përdoruesit ose programet të mos mund t'i ekzekutojnë. Dhe nëse dikush arrin të hyjë në sistemin e skedarëve, Bottlerocket ofron një mjet për të kontrolluar dhe mbajtur ndjekjen e çdo ndryshimi të bërë.

Rezhimi "i verifikuar" zbatohet përmes funksionit device-mapper-verity (dm-verity), i cili kontrollon integritetin e seksionit rrënjor gjatë ngarkesës. AWS e përshkruan dm-verity si "një funksion të bërthamës Linux, i cili siguron verifikimin e integritetit për të parandaluar ekzekutimin e malware-it në sistemin operativ, si rishkrimin e softuerit kryesor të sistemit."

Gjithashtu, në sistem gjendet një filtrues eBPF (extended BPF, zbavitja e Aleksej Starovoitov), i cili lejon zëvendësimin e moduleve të bërthamës me programe më të sigurta BPF për operacione sistemike me nivele të ulta.

Modeli i ekzekutimit
Caktohet nga përdoruesi
Kompilimi
Siguria
Rezhimi i dështimit
Qasja në burime

Përdorues
detyra
po
çdo
të drejtat e përdoruesve
ndërprerja e ekzekutimit
thirrje sistemore, gabim

Nuk është
detyra
jo
statike
jo
panika e kernel-it
drejtë

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

Dallimi midis BPF dhe kodit të zakonshëm të nivelit të përdoruesit ose kernel-it, burimi

AWS deklaroi se Bottlerocket "aplikon një model operativ që e rrit edhe më shumë sigurinë, duke penguar lidhjet me serverët e prodhimit me privilegje administratori", dhe "është e përshtatshme për sisteme të mëdha të shpërndara, ku kontrolli mbi çdo streho të veçantë është i kufizuar".

PĂ«r administratorĂ«t e sistemeve, Ă«shtĂ« parashikuar njĂ« kontenier administratori. Por AWS nuk mendon se administratori do tĂ« punojĂ« shpesh brenda Bottlerocket: "Aktiviteti i lidhjes me njĂ« instancĂ« tĂ« veçantĂ« Bottlerocket Ă«shtĂ« i destinuar pĂ«r operacione tĂ« pakta: debuggim tĂ« avancuar dhe çmontim tĂ« problemeve", — shkruajnĂ« zhvilluesit.

Gjuha Rust

Instrumenti i OS mbi kernel kryesisht është shkruar në Rust. Ky gjuhë natyrisht i zvogëlon mundësitë për qasje të pasigurt në memorie, dhe gjithashtu eliminojnë kushtet e garatës midis thread-eve.

Gjatë ndërtimit të parazgjedhur aplikohen flamujt --enable-default-pie dhe --enable-default-ssp për të aktivizuar rastësimin e hapësirës adresore të skedarëve ekzekutivë (ekzekutiv i pavarur nga pozita, PIE) dhe mbrojtjen nga mbipërmbajtja e stack-ut.

Për paketat në C/C++ gjithashtu aktivizohen flamujt -Wall, -Werror=format-security, -Wp,-D_FORTIFY_SOURCE=2, -Wp,-D_GLIBCXX_ASSERTIONS dhe -fstack-clash-protection.

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

Integrimi me shërbimet AWS

Dallimi nga sistemet operative të ngjashme të kontenierëve është se Amazon e optimizoi Bottlerocket për ta bërë atë të punojë me AWS dhe të integrohet me shërbime të tjera AWS.

Orkestratori më i popullarizuar i kontenierëve është Kubernetes, prandaj AWS implementoi integrimin me shërbimin e vet Enterprise Kubernetes (EKS). Veglat për orkestrimin vijnë në një kontenier administrues të veçantë bottlerocket-control-container, i cili përfshihet si parazgjedhje dhe menaxhohet përmes API dhe AWS SSM Agent.

Do të jetë interesante të shihet nëse Bottlerocket do të ngrihet, duke marrë parasysh dështimin e disa iniciativave të ngjashme në të kaluarën. Për shembull, PhotonOS nga Vmware u pa si e papërjetuar, dhe RedHat bleu CoreOS dhe mbylli projektin, i cili konsiderohej si pionier në këtë fushë.

Integrimi i Bottlerocket me shërbimet AWS e bën këtë sistem unik në llojin e tij. Ndoshta kjo është arsyeja kryesore pse disa përdorues mund të preferojnë Bottlerocket ndaj distribucioneve të tjera, si CoreOS ose Alpine. Sistemi është projektuar fillimisht për të punuar me EKS dhe ECS, por ta përsërisim, kjo nuk është e domosdoshme. Së pari, Bottlerocket mund të të ndërtohet vetë përdoret gjithashtu, për shembull, si një zgjidhje të hostuar. Së dyti, përdoruesit e EKS dhe ECS prapë do të ruajnë mundësinë për zgjedhjen e OS-së.

Kodi burimor i Bottlerocket është publikuar në GitHub nën licencën Apache 2.0. Zhvilluesit tashmë po reagojnë ndaj raportimeve të gabimeve dhe kërkesave për veçori.

Si reklamë

VDSina ofron 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 dhe Ă«shtĂ« falas i mbrojtur nga sulmet DDoS!

Doli distribucioni minimalist i Linux, Bottlerocket, për të nisur kontejnerët. Më e rëndësishmja për të

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster