A Bottlerocket 1.2 kiadása, egy izolált konténereken alapuló disztribúció

Elérhető a Bottlerocket 1.2.0 Linux disztribúció kiadása, amelyet az Amazon részvételével fejlesztettek ki az elszigetelt konténerek hatékony és biztonságos elindítására. A disztribúció eszközei és vezérlőelemei Rust nyelven készültek, és az MIT és az Apache 2.0 licenc alatt kerülnek terjesztésre. Támogatja a Bottlerocket futtatását Amazon ECS, VMware és AWS EKS Kubernetes fürtökön, valamint olyan egyedi buildek és kiadások létrehozását, amelyek lehetővé teszik a különböző hangszerelési és futásidejű eszközök használatát konténerekhez.

A disztribúció egy atomosan és automatikusan frissített oszthatatlan rendszerképet biztosít, amely tartalmazza a Linux kernelt és egy minimális rendszerkörnyezetet, amely csak a konténerek futtatásához szükséges összetevőket tartalmazza. A környezet tartalmazza a systemd rendszerkezelőt, a Glibc könyvtárat, a Buildroot build eszközt, a GRUB rendszerbetöltőt, a gonosz hálózati konfigurátort, a konténeres izolált tároló futási környezetet, a Kubernetes konténer-orchestrációs platformot, az aws-iam-authenticatort és az Amazon ECS ügynököt. .

A konténer-rendezési eszközök egy külön felügyeleti tárolóban vannak, amely alapértelmezés szerint engedélyezve van, és az API-n és az AWS SSM-ügynökön keresztül kezelhető. Az alapképből hiányzik a parancshéj, az SSH-kiszolgáló és az értelmezett nyelvek (például nincs Python vagy Perl) - az adminisztrációs és hibakereső eszközök egy külön szolgáltatástárolóba kerülnek, amely alapértelmezés szerint le van tiltva.

A legfontosabb különbség a hasonló disztribúcióktól, mint például a Fedora CoreOS, CentOS/Red Hat Atomic Host, az elsődlegesen a maximális biztonság nyújtása a lehetséges fenyegetésekkel szembeni rendszervédelem megerősítése, az operációs rendszer összetevőiben lévő sérülékenységek kihasználásának bonyolítása és a tárolók elszigeteltségének növelése összefüggésében. A tárolók a Linux kernel szokásos mechanizmusaival jönnek létre – cgroups, namespaces és seccomp. A további elkülönítés érdekében a disztribúció a SELinuxot "kényszerítő" módban használja.

A gyökérpartíció csak olvasható módban, az /etc beállításokkal rendelkező partíció pedig a tmpfs-ben csatolva lesz, és újraindítás után visszaáll az eredeti állapotába. Az /etc könyvtárban lévő fájlok, például az /etc/resolv.conf és /etc/containerd/config.toml közvetlen módosítása nem támogatott – a beállítások végleges mentéséhez használja az API-t, vagy helyezze át a funkciókat külön tárolókba. A gyökérpartíció integritásának kriptográfiai ellenőrzésére a dm-verity modult használják, és ha blokkeszköz szintű adatmódosítási kísérletet észlel, a rendszer újraindul.

A legtöbb rendszerösszetevő Rust nyelven íródott, amely memóriabiztos eszközöket biztosít a memóriaterület felszabadítása utáni címzéséből, a nullmutatók hivatkozásának megszüntetéséből és a puffertúllépésből eredő sebezhetőségek elkerülésére. Az építés során az "--enable-default-pie" és az "--enable-default-ssp" fordítási módok alapértelmezés szerint lehetővé teszik a végrehajtható fájlok (PIE) címterű véletlenszerűsítését és a verem túlcsordulás elleni védelmét a kanári címkék helyettesítésével. A C/C++ nyelven írt csomagok esetében a "-Wall", "-Worror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" és "-fstack-clash" jelző is használható. tartalmazza -védelem.

Az új kiadásban:

  • Támogatás hozzáadva a tárolókép-nyilvántartási tükrökhöz.
  • Hozzáadtuk az önaláírt tanúsítványok használatának lehetőségét.
  • Hozzáadott opció a gazdagépnév konfigurálásához.
  • Az adminisztrációs tároló alapértelmezett verziója frissítve lett.
  • Hozzáadott topologyManagerPolicy és topologyManagerScope beállítások a kubelethez.
  • Hozzáadott támogatás a kernel tömörítéséhez a zstd algoritmus használatával.
  • Lehetőség van virtuális gépek VMware-be való betöltésére OVA (Open Virtualization Format) formátumban.
  • Az aws-k8s-1.21 terjesztési verzió a Kubernetes 1.21 támogatásával frissült. Az aws-k8s-1.16 támogatása megszűnt.
  • Frissített csomagverziók és függőségek a Rust nyelvhez.

Forrás: opennet.ru

Hozzászólás