Yon distribisyon Linux minimalist, Bottlerocket, te lage pou kouri kontenè. Bagay ki pi enpòtan sou li

Yon distribisyon Linux minimalist, Bottlerocket, te lage pou kouri kontenè. Bagay ki pi enpòtan sou li

Konpayi Amazon te anonse sou lage final la boutèy fize — yon distribisyon espesyalize pou kouri kontenè ak jere yo efektivman.

Bottlerocket (nan chemen an, non yo bay ti fize poud nwa endijèn) se pa premye eksplwatasyon an pou resipyan, men li posib ke li pral vin gaye toupatou gras a entegrasyon default ak sèvis AWS. Malgre ke sistèm nan konsantre sou Amazon nwaj la, kòd sous louvri a pèmèt li dwe bati nenpòt kote: lokalman sou yon sèvè, sou yon Franbwaz Pi, nan nenpòt nwaj konpetisyon, e menm nan yon anviwònman san veso.

Sa a se yon ranplasman konplètman merite pou distribisyon CoreOS ke Red Hat antere l.

An reyalite, Amazon Web Services divizyon an deja gen Amazon Linux, ki dènyèman te soti nan dezyèm vèsyon li yo: li se yon distribisyon jeneral ki ka kouri nan yon veso Docker oswa ak Linux KVM, Microsoft Hyper-V, ak VMware. ESXi hypervisors. Li te optimize pou kouri sou nwaj AWS, men ak lage Bottlerocket, yo ankouraje tout moun pou yo ajou ak yon nouvo sistèm ki pi an sekirite, ki pi modèn, epi ki itilize mwens resous.

AWS te anonse Bottlerocket nan mwa mas 2020. Li imedyatman admèt ke sa a se pa premye "Linux pou resipyan," site CoreOS, Rancher OS ak Project Atomic kòm sous enspirasyon. Devlopè yo te ekri ke sistèm operasyon an se "rezilta leson yo nou te aprann nan kouri sèvis pwodiksyon nan echèl Amazon a pou yon tan long, ak eksperyans nan nou te genyen sou sis dènye ane yo sou kòman yo kouri kontenè."

Minimalism ekstrèm

Linux retire tout bagay ki pa nesesè pou kouri kontenè yo. Sa a konsepsyon, dapre konpayi an, diminye sifas la atak.

Sa vle di ke mwens pakè yo enstale sou sistèm baz la, sa ki fè li pi fasil pou kenbe ak mete ajou OS la, epi tou redwi chans pou pwoblèm akòz depandans, diminye itilizasyon resous yo. Fondamantalman, tout bagay isit la ap travay andedan resipyan separe, ak sistèm ki kache a se pratikman fè.

Amazon tou te retire tout kokiy ak entèprèt, elimine risk pou yo itilize yo oswa itilizatè yo aksidantèlman ogmante privilèj yo. Pou dedomajman pou minimalist ak sekirite, imaj de baz la pa gen ladan yon kokiy lòd, yon sèvè SSH, oswa lang entèprete tankou Python. Zouti administratè yo mete yo nan yon resipyan sèvis separe, ki se enfim pa default.

Sistèm nan jere nan de fason: atravè API a ak orchestration.

Olye pou yon manadjè pake ki mete ajou moso endividyèl nan lojisyèl, Bottlerocket telechaje yon imaj sistèm fichye konplè epi rdemare nan li. Si yon chaj echwe, li otomatikman woule tounen, epi yon echèk chaj travay ka deklanche yon rollback manyèlman (kòmand atravè API).

Kad TUF (Chad Mizajou) telechaje mizajou ki baze sou imaj nan patisyon altène oswa "demonte". De patisyon disk yo resevwa lajan pou sistèm nan, youn nan yo ki gen sistèm aktif la, ak aktyalizasyon a kopye nan dezyèm lan. Nan ka sa a, se patisyon rasin lan monte nan mòd lekti sèlman, ak patisyon an /etc monte ak sistèm nan dosye nan RAM tmpfs epi retabli eta orijinal la apre yon rekòmanse. Modifikasyon dirèk nan dosye konfigirasyon nan /etc pa sipòte: pou konsève pou anviwònman ou ta dwe itilize API a oswa deplase fonksyonalite a nan resipyan separe.

Yon distribisyon Linux minimalist, Bottlerocket, te lage pou kouri kontenè. Bagay ki pi enpòtan sou li
Konplo aktyalizasyon API

Безопасность

Kontenè yo kreye pa mekanis estanda nan nwayo Linux - cgroups, namespaces ak seccomp, epi yo itilize kòm yon sistèm kontwòl aksè fòse, se sa ki, pou izolasyon adisyonèl. SELinux nan "anfòse" mòd.

Pa default, règleman yo pèmèt yo pataje resous ant resipyan ak nwayo a. Binè yo pwoteje ak drapo yo anpeche itilizatè yo oswa pwogram nan egzekite yo. Men, si yon moun rive nan sistèm dosye a, Bottlerocket ofri yon zouti pou tcheke ak swiv nenpòt chanjman ki fèt.

Mòd "bòt verifye" aplike atravè fonksyon aparèy-mapper-verity (dm-verite), ki tcheke entegrite patisyon rasin lan pandan bòt la. AWS dekri dm-verity kòm "yon karakteristik nwayo Linux ki bay chèk entegrite pou anpeche malveyan kouri sou eksplwatasyon an, tankou ranplase lojisyèl sistèm debaz la."

Genyen tou yon filtè nan sistèm lan eGMP (BPF pwolonje, devlope pa Alexey Starovoitov), ki pèmèt modil nwayo yo dwe ranplase ak pwogram BPF ki pi an sekirite pou operasyon sistèm ba nivo.

Modèl ekzekisyon
Itilizatè defini
Konpilasyon
Безопасность
Mòd echèk
Aksè nan resous yo

Itilizatè
travay la
repons lan se wi
nenpòt ki
dwa itilizatè
entèwonp ekzekisyon
apèl sistèm, fòt

Nwayo a
travay la
нет
estatik
нет
panik nwayo
dwat

BPF
evènman
repons lan se wi
JIT, CO-RE
verifikasyon, JIT
mesaj erè
èd limite

Ki jan BPF diferan de itilizatè regilye oswa kòd nivo nwayo sous

AWS te di Bottlerocket "anplwaye yon modèl opere ki plis amelyore sekirite lè li anpeche koneksyon ak sèvè pwodiksyon ak privilèj administratif" epi li "apwopriye pou gwo sistèm distribiye kote kontwòl sou chak lame endividyèl limite."

Yo bay yon veso administratè pou administratè sistèm yo. Men, AWS pa panse ke yon administratè ap bezwen souvan travay andedan Bottlerocket: "Aksyon pou antre nan yon egzanp Bottlerocket separe fèt pou operasyon ki pa souvan: debogaj avanse ak depanaj," ekri devlopè yo.

Lang rouye

Instrumentation OS sou tèt nwayo a sitou ekri nan Rust. Lang sa a se pa nati li diminye chans pou aksè nan memwa danjereAk elimine kondisyon ras ant fil yo.

Drapo yo aplike pa default lè bati --enable-default-pie и --enable-default-ssp pou pèmèt owaza espas adrès la nan dosye ègzèkutabl (ègzekutabl pozisyon-endepandan, PIE) ak pile pwoteksyon debòde.

Pou pakè C/C++, drapo adisyonèl yo enkli -Wall, -Werror=format-security, -Wp,-D_FORTIFY_SOURCE=2, -Wp,-D_GLIBCXX_ASSERTIONS и -fstack-clash-protection.

Anplis Rust ak C/C++, kèk pakè yo ekri nan Go.

Entegrasyon ak sèvis AWS

Diferans ak sistèm operasyon veso ki sanble se ke Amazon te optimize Bottlerocket pou kouri sou AWS epi entegre ak lòt sèvis AWS.

Orchestrator veso ki pi popilè a se Kubernetes, kidonk AWS te prezante entegrasyon ak pwòp Enterprise Kubernetes Service (EKS). Zouti orchestrasyon yo vini nan yon veso kontwòl separe bottlerocket-control-container, ki aktive pa default ak jere atravè API a ak AWS SSM Ajan.

Li pral enteresan yo wè si Bottlerocket dekole, bay echèk nan kèk inisyativ menm jan an nan tan lontan an. Pou egzanp, PhotonOS soti nan Vmware te tounen soti yo pa reklame, ak RedHat te achte CoreOS ak fèmen pwojè a, ki te konsidere kòm pyonye nan domèn nan.

Entegrasyon Bottlerocket nan sèvis AWS fè sistèm sa a inik nan pwòp fason li. Sa a se petèt rezon prensipal poukisa kèk itilizatè ka prefere Bottlerocket pase lòt distros tankou CoreOS oswa Alpine. Okòmansman sistèm nan fèt pou travay ak EKS ak ECS, men nou repete ke sa a pa nesesè. Premyèman, Bottlerocket kapab rasanble poukont ou epi sèvi ak li, pou egzanp, kòm yon solisyon anime. Dezyèmman, itilizatè EKS ak ECS ap toujou gen kapasite pou yo chwazi eksplwatasyon yo.

Kòd sous Bottlerocket pibliye sou GitHub anba lisans Apache 2.0. Devlopè yo gen deja reponn a rapò ensèk ak demann karakteristik.

Sou Dwa yo nan Piblisite

VDSina ofri VDS ak peman chak jou. Li posib enstale nenpòt sistèm opere, ki gen ladan soti nan pwòp imaj ou. Chak sèvè konekte ak yon kanal entènèt 500 Megabit epi li pwoteje kont atak DDoS gratis!

Yon distribisyon Linux minimalist, Bottlerocket, te lage pou kouri kontenè. Bagay ki pi enpòtan sou li

Sous: www.habr.com

Add nouvo kòmantè