amazon
A Bottlerocket (egyébként a kis házi fekete por rakéták elnevezése) nem az első konténerekre szánt operációs rendszer, de valószínűleg az AWS szolgáltatásokkal való alapértelmezett integrációnak köszönhetően széles körben elterjed. Bár a rendszer az Amazon felhőjére koncentrál, a nyílt forráskóddal bárhol meg lehet építeni: lokálisan szerveren, Raspberry Pi-n, bármely konkurens felhőben, sőt konténer nélküli környezetben is.
Ez teljesen méltó helyettesítője a CoreOS disztribúciónak, amelyet a Red Hat elásott.
Valójában az Amazon Web Services részleg már rendelkezik Amazon Linuxszal, amely nemrég jelent meg a második verziójában: ez egy általános célú disztribúció, amely Docker konténerben vagy Linux KVM-mel, Microsoft Hyper-V-vel és VMware-rel futtatható. ESXi hipervizorok. Az AWS felhőn való futtatásra optimalizálták, de a Bottlerocket megjelenésével mindenkit arra ösztönöznek, hogy frissítsen egy új rendszerre, amely biztonságosabb, modernebb és kevesebb erőforrást használ.
Az AWS bejelentette a Bottlerocket
Extrém minimalizmus
A Linuxtól megfosztanak mindent, ami a konténerek futtatásához nem szükséges. Ez a kialakítás a cég szerint csökkenti a támadási felületet.
Ez azt jelenti, hogy kevesebb csomag van telepítve az alaprendszerre, ami megkönnyíti az operációs rendszer karbantartását és frissítését, valamint csökkenti a függőségek miatti problémák valószínűségét, csökkentve az erőforrás-felhasználást. Alapvetően itt minden külön konténerekben működik, és az alaprendszer gyakorlatilag csupasz.
Az Amazon emellett eltávolított minden shellt és tolmácsot, így megszűnt annak a veszélye, hogy használatba kerüljenek, vagy hogy a felhasználók véletlenül megnöveljék a jogosultságokat. A minimalizmus és a biztonság kedvéért az alapkép nem tartalmaz parancshéjat, SSH-kiszolgálót vagy olyan értelmezett nyelveket, mint a Python. Az adminisztrátori eszközök egy külön szolgáltatástárolóba kerülnek, amely alapértelmezés szerint le van tiltva.
A rendszer kezelése kétféleképpen történik: API-n és hangszerelésen keresztül.
Az egyes szoftvereket frissítő csomagkezelő helyett a Bottlerocket letölt egy teljes fájlrendszer-képet, és újraindítja azt. Ha egy betöltés meghiúsul, automatikusan visszagörgeti, és a munkaterhelési hiba manuálisan (API-n keresztüli parancs) visszaállítást indíthat el.
Keretrendszer /etc
csatolva a fájlrendszerrel a RAM-ban /etc
nem támogatott: a beállítások mentéséhez használja az API-t, vagy helyezze át a funkciókat külön tárolókba.
API frissítési séma
biztonság
A konténereket a Linux kernel szabványos mechanizmusai - cgroupok, névterek és seccomp - hozzák létre, és kényszerített hozzáférés-vezérlő rendszerként használják, azaz további elkülönítésre.
Alapértelmezés szerint a házirendek engedélyezve vannak az erőforrások megosztására a tárolók és a kernel között. A bináris fájlokat zászlókkal védik, hogy megakadályozzák a felhasználók vagy programok végrehajtását. És ha valaki eljut a fájlrendszerhez, a Bottlerocket egy eszközt kínál az esetleges változtatások ellenőrzésére és nyomon követésére.
Az „ellenőrzött rendszerindítás” mód az eszközleképező-verity függvényen keresztül valósul meg (
Szűrő is van a rendszerben
Végrehajtási modell
Felhasználó által meghatározott
Összeállítás
biztonság
Meghibásodás
Hozzáférés az erőforrásokhoz
Felhasználó
a feladat
igen
bármilyen
felhasználói jogok
a végrehajtás megszakítása
rendszerhívás, hiba
A mag
a feladat
nincs
statikus
nincs
kernel pánik
прямой
BPF
esemény
igen
JIT, CO-RE
ellenőrzés, JIT
hiba üzenet
korlátozott segítők
Miben különbözik a BPF a normál felhasználói vagy kernel szintű kódtól
Az AWS szerint a Bottlerocket "olyan működési modellt alkalmaz, amely tovább fokozza a biztonságot azáltal, hogy megakadályozza az adminisztrátori jogosultságokkal rendelkező éles szerverekhez való kapcsolódást", és "alkalmas olyan nagy elosztott rendszerekhez, ahol az egyes gazdagépek feletti ellenőrzés korlátozott".
A rendszergazdák számára egy rendszergazdai tároló áll rendelkezésre. Az AWS azonban nem gondolja, hogy egy adminisztrátornak gyakran a Bottlerocketen belül kell dolgoznia: "A különálló Bottlerocket-példányba való bejelentkezés ritka műveletekre szolgál: speciális hibakeresés és hibaelhárítás."
Rozsdanyelv
A kernel tetején lévő operációs rendszer műszerezése többnyire Rust nyelven íródott. Ez a nyelv természeténél fogva
A zászlókat alapértelmezés szerint alkalmazza az építés során --enable-default-pie
и --enable-default-ssp
a futtatható fájlok címterének véletlenszerűvé tételéhez (
A C/C++ csomagokhoz további jelzők is tartoznak -Wall
, -Werror=format-security
, -Wp,-D_FORTIFY_SOURCE=2
, -Wp,-D_GLIBCXX_ASSERTIONS
и -fstack-clash-protection
.
A Rust és a C/C++ mellett néhány csomag Go nyelven íródott.
Integráció az AWS szolgáltatásokkal
A különbség a hasonló konténer operációs rendszerekhez képest az, hogy az Amazon úgy optimalizálta a Bottlerocket, hogy AWS-en futjon, és integrálódjon más AWS-szolgáltatásokkal.
A legnépszerűbb konténer-hangszerelő a Kubernetes, ezért az AWS bevezette az integrációt saját Enterprise Kubernetes szolgáltatásával (EKS). A hangszerelési eszközök külön vezérlőtartályban érkeznek
Érdekes lesz látni, hogy a Bottlerocket elindul-e, tekintettel néhány hasonló kezdeményezés kudarcára a múltban. Például kiderült, hogy a Vmware PhotonOS-je nem igényelt, és a RedHat megvásárolta a CoreOS-t és
A Bottlerocket AWS szolgáltatásokba való integrálása a maga módján egyedülállóvá teszi ezt a rendszert. Talán ez a fő oka annak, hogy egyes felhasználók előnyben részesítik a Bottlerocketet más disztribúciókkal szemben, mint például a CoreOS vagy az Alpine. A rendszert eredetileg úgy tervezték, hogy EKS-sel és ECS-sel működjön, de ismételjük, hogy ez nem szükséges. Először is, Bottlerocket képes
A Bottlerocket forráskódja az Apache 2.0 licenc alatt jelenik meg a GitHubon. A fejlesztők már megtették
A Reklám Jogairól
VDSina ajánlatok
Forrás: will.com