Ir pieejams Bottlerocket 1.8, izplatīšana, kuras pamatā ir izolēti konteineri

Ir publicēts Linux izplatīšanas Bottlerocket 1.8.0 izlaidums, kas izstrādāts ar Amazon līdzdalību efektīvai un drošai izolētu konteineru palaišanai. Izplatīšanas rīki un vadības komponenti ir rakstīti Rust un tiek izplatīti saskaņā ar MIT un Apache 2.0 licencēm. Tas atbalsta Bottlerocket palaišanu Amazon ECS, VMware un AWS EKS Kubernetes klasteros, kā arī pielāgotu būvējumu un izdevumu izveidi, kas ļauj konteineriem izmantot dažādus orķestrēšanas un izpildlaika rīkus.

Izplatījums nodrošina atomiski un automātiski atjauninātu nedalāmu sistēmas attēlu, kas ietver Linux kodolu un minimālu sistēmas vidi, ieskaitot tikai konteineru palaišanai nepieciešamos komponentus. Vidē ietilpst sistēmas sistēmas pārvaldnieks, Glibc bibliotēka, Buildroot veidošanas rīks, GRUB sāknēšanas ielādētājs, ļaunā tīkla konfigurators, konteineru izpildlaiks izolētiem konteineriem, Kubernetes konteineru orķestrēšanas platforma, aws-iam-autentifikators un Amazon. ECS aģents.

Konteinera orķestrēšanas rīki ir iekļauti atsevišķā pārvaldības konteinerā, kas ir iespējots pēc noklusējuma un tiek pārvaldīts, izmantojot API un AWS SSM aģentu. Bāzes attēlam trūkst komandu apvalka, SSH servera un tulkotās valodas (piemēram, nav Python vai Perl) - administratīvie rīki un atkļūdošanas rīki tiek ievietoti atsevišķā pakalpojuma konteinerā, kas pēc noklusējuma ir atspējots.

Galvenā atšķirība no līdzīgiem izplatījumiem, piemēram, Fedora CoreOS, CentOS/Red Hat Atomic Host, galvenā uzmanība tiek pievērsta maksimālas drošības nodrošināšanai saistībā 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ā.

Saknes nodalījums ir uzstādīts tikai lasāms, un /etc iestatījumu nodalījums tiek montēts 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. Dm-verity modulis tiek izmantots, lai kriptogrāfiski pārbaudītu saknes nodalījuma integritāti, un, ja tiek atklāts mēģinājums modificēt datus blokierīces līmenī, sistēma tiek restartēta.

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, tiek izmantoti kompilācijas režīmi "-enable-default-pie" un "-enable-default-ssp", lai iespējotu izpildāmā faila adrešu telpas (PIE) randomizāciju un aizsardzību pret steku pārpildīšanu, izmantojot kanāriju aizstāšanu. Pakotnēm, kas rakstītas C/C++ valodā, papildus tiek izmantoti karodziņi “-Wall”, “-Werror=format-security”, “-Wp,-D_FORTIFY_SOURCE=2”, “-Wp,-D_GLIBCXX_ASSERTIONS” un “-fstack-clash”. iespējota -aizsardzība".

Jaunajā laidienā:

  • Atjaunots administratīvo un kontroles konteineru saturs.
  • Izolētu konteineru izpildlaiks ir atjaunināts uz konteineru 1.6.x filiāli.
  • Nodrošina, ka fona procesi, kas koordinē konteineru darbību, tiek restartēti pēc izmaiņām sertifikātu krātuvē.
  • Kodola sāknēšanas parametrus var iestatīt, izmantojot sadaļu Boot Configuration.
  • Iespējota tukšo bloku ignorēšana, uzraugot saknes nodalījuma integritāti, izmantojot dm-verity.
  • Ir nodrošināta iespēja statiski saistīt resursdatora nosaukumus mapē /etc/hosts.
  • Ir nodrošināta iespēja ģenerēt tīkla konfigurāciju, izmantojot utilītu netdog (ir pievienota komanda generate-net-config).
  • Ir ierosinātas jaunas izplatīšanas iespējas ar Kubernetes 1.23 atbalstu. Podu palaišanas laiks programmā Kubernetes ir samazināts, atspējojot režīmu configMapAndSecretChangeDetectionStrategy. Pievienoti jauni Kubelet iestatījumi: sniedzēja ID un podPidsLimit.
  • Ir ierosināta jauna izplatīšanas komplekta "aws-ecs-1-nvidia" versija Amazon Elastic Container Service (Amazon ECS), kas tiek piegādāta ar NVIDIA draiveriem.
  • Pievienots atbalsts Microchip Smart Storage un MegaRAID SAS atmiņas ierīcēm. Broadcom mikroshēmu Ethernet karšu atbalsts ir paplašināts.
  • Atjauninātas pakešu versijas un atkarības valodām Go un Rust, kā arī pakotņu versijas ar trešo pušu programmām. Bottlerocket SDK ir atjaunināts uz versiju 0.26.0.

Avots: opennet.ru

Pievieno komentāru