Amazon publicē Bottlerocket 1.0.0, Linux izplatīšanu, kuras pamatā ir izolēti konteineri

Uzņēmums Amazon uzrādīts pirmais nozīmīgais īpašā Linux izplatīšanas izlaidums Pudeles raķis 1.0.0, kas paredzēti, lai efektīvi un droši darbinātu izolētus konteinerus. Izplatīšanas rīki un vadības komponenti ir rakstīti Rust un izplatīties saskaņā ar MIT un Apache 2.0 licencēm. Projekts tiek izstrādāts vietnē GitHub, un tas ir pieejams kopienas dalībnieku līdzdalībai. Sistēmas izvietošanas attēls tiek ģenerēts x86_64 un Aarch64 arhitektūrām. OS ir pielāgota darbam Amazon ECS un AWS EKS Kubernetes klasteros. Tiek nodrošināti rīki savu komplektu un izdevumu izveidei, kuros var izmantot citus orķestrēšanas rīkus, kodolus un izpildlaiku konteineriem.

Izplatījums nodrošina Linux kodolu un minimālu sistēmas vidi, iekļaujot tikai konteineru palaišanai nepieciešamos komponentus. Starp projektā iesaistītajām pakotnēm ir sistēmas pārvaldnieks systemd, Glibc bibliotēka un montāžas rīki
Buildroot, GRUB sāknēšanas ielādētājs, tīkla konfigurators nelabs, izpildlaiks izolētiem konteineriem konteinerā, Kubernetes konteineru orķestrēšanas platforma, aws-iam-authenticator un Amazon ECS aģents.

Izplatījums tiek atjaunināts atomiski un tiek piegādāts nedalāma sistēmas attēla veidā. Sistēmai tiek piešķirti divi diska nodalījumi, no kuriem vienā ir aktīvā sistēma, un atjauninājums tiek kopēts uz otro. Pēc atjauninājuma izvietošanas otrais nodalījums kļūst aktīvs, un pirmajā, līdz tiek saņemts nākamais atjauninājums, tiek saglabāta iepriekšējā sistēmas versija, kuru var atvilkt atpakaļ, ja rodas problēmas. Atjauninājumi tiek instalēti automātiski bez administratora iejaukšanās.

Galvenā atšķirība no līdzīgiem izplatījumiem, piemēram, Fedora CoreOS, CentOS/Red Hat Atomic Host, ir galvenā uzmanība maksimāla drošība kontekstā ar sistēmas aizsardzības stiprināšanu pret iespējamiem draudiem, apgrūtinot OS komponentu ievainojamību izmantošanu un palielinot konteineru izolāciju. Konteineri tiek veidoti, izmantojot standarta Linux kodola mehānismus – cgroups, namespaces un seccomp. Papildu izolācijai izplatīšana izmanto SELinux “piespiedu” režīmā, un modulis tiek izmantots saknes nodalījuma integritātes kriptogrāfiskai pārbaudei. dm-verity. Ja tiek atklāts mēģinājums modificēt datus blokierīces līmenī, sistēma tiek restartēta.

Saknes nodalījums ir montēts tikai lasāms, un /etc iestatījumu nodalījums tiek pievienots tmpfs un pēc restartēšanas tiek atjaunots tā sākotnējā stāvoklī. Tieša failu pārveidošana direktorijā /etc, piemēram, /etc/resolv.conf un /etc/containerd/config.toml, netiek atbalstīta - lai pastāvīgi saglabātu iestatījumus, ir jāizmanto API vai jāpārvieto funkcionalitāte atsevišķos konteineros.

Lielākā daļa sistēmas komponentu ir rakstīti valodā Rust, kas nodrošina atmiņai drošus līdzekļus, lai izvairītos no ievainojamībām, ko izraisa pēcbrīva piekļuve atmiņai, nulles rādītāja novirzīšana un bufera pārtēriņš. Veidojot pēc noklusējuma, kompilācijas režīmi “--enable-default-pie” un “--enable-default-ssp” tiek izmantoti, lai iespējotu izpildāmo failu adrešu telpas nejaušību (PIE) un skursteņa pārplūdes aizsardzību, izmantojot kanāriju aizstāšanu.
C/C++ valodā rakstītām pakotnēm ir iekļauti papildu karodziņi
"-Siena", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" un "-fstack-clash-protection".

Konteineru orķestrēšanas rīki tiek piegādāti atsevišķi kontroles konteiners, kas ir iespējots pēc noklusējuma un tiek kontrolēts, izmantojot API un AWS SSM aģents. Bāzes attēlam trūkst komandu apvalka, SSH servera un interpretētās valodas (piemēram, nav Python vai Perl) - administratīvie rīki un atkļūdošanas rīki atrodas atsevišķs servisa konteiners, kas pēc noklusējuma ir atspējota.

Avots: opennet.ru

Pievieno komentāru