Distribusi Linux minimalis, Bottlerocket, wis dirilis kanggo kontaner sing mlaku. Sing paling penting babagan dheweke

Distribusi Linux minimalis, Bottlerocket, wis dirilis kanggo kontaner sing mlaku. Sing paling penting babagan dheweke

Perusahaan Amazon diumumake babagan release pungkasan Botol ngisor - distribusi khusus kanggo kontaner sing mlaku lan ngatur kanthi efektif.

Bottlerocket (kanthi cara, jeneng sing diwènèhaké kanggo roket bubuk ireng krasan cilik) ora OS pisanan kanggo kontaner, nanging kamungkinan sing bakal nyebar thanks kanggo integrasi standar karo layanan AWS. Sanajan sistem kasebut fokus ing awan Amazon, kode sumber mbukak ngidini supaya bisa dibangun ing endi wae: lokal ing server, ing Raspberry Pi, ing sembarang awan saingan, lan malah ing lingkungan tanpa wadah.

Iki minangka panggantos sing cocog kanggo distribusi CoreOS sing dikubur Red Hat.

Nyatane, divisi Layanan Web Amazon wis duwe Amazon Linux, sing bubar metu ing versi kapindho: minangka distribusi tujuan umum sing bisa ditindakake ing wadhah Docker utawa nganggo Linux KVM, Microsoft Hyper-V, lan VMware. ESXi hypervisor. Iki dioptimalake kanggo mbukak awan AWS, nanging kanthi rilis Bottlerocket, kabeh wong disaranake kanggo nganyarke menyang sistem anyar sing luwih aman, modern, lan nggunakake sumber daya sing luwih sithik.

AWS ngumumake Bottlerocket ing Maret 2020. Dheweke langsung ngakoni yen iki dudu "Linux kanggo wadhah" pisanan, kanthi nyebutake CoreOS, Rancher OS lan Project Atomic minangka sumber inspirasi. Pangembang nulis yen sistem operasi minangka "asil saka pawulangan sing wis kita sinau saka layanan produksi ing skala Amazon kanggo wektu sing suwe, lan pengalaman sing kita entuk sajrone nem taun kepungkur babagan cara mbukak kontaner."

Minimalis ekstrem

Linux dicopot kabeh sing ora dibutuhake kanggo mbukak wadah. Desain iki, miturut perusahaan, nyuda permukaan serangan.

Iki tegese luwih sithik paket sing diinstal ing sistem dhasar, sing nggawe luwih gampang kanggo njaga lan nganyari OS, lan uga nyuda kemungkinan masalah amarga dependensi, nyuda panggunaan sumber daya. Sejatine, kabeh ing kene bisa digunakake ing wadhah sing kapisah, lan sistem dhasare meh ora ana.

Amazon uga wis ngilangi kabeh cangkang lan juru basa, ngilangi risiko digunakake utawa pangguna ora sengaja nambah hak istimewa. Kanggo minimalisme lan keamanan, gambar dhasar ora kalebu cangkang perintah, server SSH, utawa basa sing diinterpretasikake kaya Python. Piranti administrator diselehake ing wadhah layanan sing kapisah, sing dipateni kanthi standar.

Sistem kasebut dikelola kanthi rong cara: liwat API lan orkestrasi.

Tinimbang manajer paket sing nganyari piranti lunak individu, Bottlerocket ndownload gambar sistem file lengkap lan miwiti maneh. Yen mbukak gagal, iku kanthi otomatis muter maneh, lan Gagal workload bisa micu rollback kanthi manual (printah liwat API).

Kerangka TUF (Kerangka Pembaruan) ngundhuh nganyari adhedhasar gambar kanggo partisi alternatif utawa "ora dipasang". Rong partisi disk diparengake kanggo sistem, salah sijine ngemot sistem aktif, lan nganyari disalin menyang sing kapindho. Ing kasus iki, partisi ROOT dipasang ing mode maca-mung, lan partisi /etc dipasang karo sistem file ing RAM tmpfs lan mulihake negara asli sawise miwiti maneh. Modifikasi langsung file konfigurasi ing /etc ora didhukung: kanggo nyimpen setelan sampeyan kudu nggunakake API utawa mindhah fungsi menyang wadhah kapisah.

Distribusi Linux minimalis, Bottlerocket, wis dirilis kanggo kontaner sing mlaku. Sing paling penting babagan dheweke
Skema nganyari API

Keamanan

Wadah digawe kanthi mekanisme standar kernel Linux - cgroups, namespaces lan seccomp, lan digunakake minangka sistem kontrol akses paksa, yaiku, kanggo isolasi tambahan. SELinux ing mode "nerapake".

Kanthi gawan, kabijakan diaktifake kanggo nuduhake sumber daya antarane wadhah lan kernel. Binari dilindhungi karo panji kanggo nyegah pangguna utawa program nglakokake. Lan yen ana sing mlebu sistem file, Bottlerocket nawakake alat kanggo mriksa lan nglacak owah-owahan sing ditindakake.

Mode "boot diverifikasi" dileksanakake liwat fungsi device-mapper-verity (dm-kasunyatan), sing mriksa integritas partisi root nalika boot. AWS nggambarake dm-verity minangka "fitur kernel Linux sing nyedhiyakake pamriksa integritas kanggo nyegah malware ora bisa mlaku ing OS, kayata nimpa piranti lunak sistem inti."

Ana uga saringan ing sistem eGMP (BPF diperpanjang, dikembangake dening Alexey Starovoitov), sing ngidini modul kernel diganti karo program BPF sing luwih aman kanggo operasi sistem tingkat rendah.

Model Eksekusi
Pangguna ditetepake
Kompilasi
Keamanan
Mode gagal
Akses menyang sumber daya

Pangguna
sawijining tugas
ya
apa wae
hak panganggo
ngganggu eksekusi
panggilan sistem, kesalahan

Inti
sawijining tugas
ora
statis
ora
panik kernel
sakcara

GMP
acara
ya
JIT, CO-RE
verifikasi, JIT
pesen kesalahan
helpers winates

Kepiye BPF beda karo pangguna biasa utawa kode level kernel sumber

AWS ngandika Bottlerocket "makaryakke model operasi sing luwih nambah keamanan dening nyegah sambungan menyang server produksi karo hak istimewa administratif" lan "cocog kanggo sistem mbagekke gedhe ngendi kontrol liwat saben host individu diwatesi."

Wadah administrator diwenehake kanggo administrator sistem. Nanging AWS ora mikir manawa admin kudu kerja ing Bottlerocket: "Tindakan mlebu menyang conto Bottlerocket sing kapisah ditujokake kanggo operasi sing jarang: debugging lan ngatasi masalah," nulis pangembang.

Basa karat

Instrumentasi OS ing ndhuwur kernel biasane ditulis ing Rust. Basa iki nduweni sifat nyuda kamungkinan saka akses memori ora amanLan ngilangake kahanan lomba antarane Utas.

GendΓ©ra ditrapake kanthi gawan nalika mbangun --enable-default-pie ΠΈ --enable-default-ssp kanggo ngaktifake acak ruang alamat file eksekusi (posisi-independen eksekusi, PIE) lan proteksi kebanjiran tumpukan.

Kanggo paket C/C ++, gendera tambahan kalebu -Wall, -Werror=format-security, -Wp,-D_FORTIFY_SOURCE=2, -Wp,-D_GLIBCXX_ASSERTIONS ΠΈ -fstack-clash-protection.

Kejabi Rust lan C / C ++, sawetara paket ditulis ing Go.

Integrasi karo layanan AWS

Bentenane saka sistem operasi wadhah sing padha yaiku Amazon wis ngoptimalake Bottlerocket kanggo mbukak ing AWS lan nggabungake karo layanan AWS liyane.

Orkestra kontainer sing paling populer yaiku Kubernetes, mula AWS wis ngenalake integrasi karo Enterprise Kubernetes Service (EKS) dhewe. Piranti orkestrasi kasedhiya ing wadhah kontrol sing kapisah bottlerocket-kontrol-wadhah, sing diaktifake kanthi gawan lan dikelola liwat Agen SSM API lan AWS.

Bakal menarik kanggo ndeleng yen Bottlerocket njupuk, amarga gagal sawetara inisiatif sing padha ing jaman kepungkur. Contone, PhotonOS saka Vmware dadi ora diklaim, lan RedHat tuku CoreOS lan ditutup proyek, sing dianggep dadi pionir ing lapangan.

Integrasi Bottlerocket menyang layanan AWS ndadekake sistem iki unik kanthi cara dhewe. Iki bisa uga dadi sebab utama sawetara pangguna luwih seneng Bottlerocket tinimbang distro liyane kayata CoreOS utawa Alpine. Sistem kasebut wiwitane dirancang kanggo nggarap EKS lan ECS, nanging mbaleni manawa iki ora perlu. Kaping pisanan, Bottlerocket bisa ngrakit dhewe lan nggunakake, contone, minangka solusi tuan rumah. Kapindho, pangguna EKS lan ECS isih bisa milih OS.

Kode sumber Bottlerocket diterbitake ing GitHub miturut lisensi Apache 2.0. Pangembang wis nanggapi laporan bug lan panjaluk fitur.

Ing Hak Iklan

VDSina nawakake VDS karo pembayaran saben dina. Sampeyan bisa nginstal sistem operasi apa wae, kalebu saka gambar sampeyan dhewe. Saben server disambungake menyang saluran Internet 500 Megabits lan dilindhungi saka serangan DDoS gratis!

Distribusi Linux minimalis, Bottlerocket, wis dirilis kanggo kontaner sing mlaku. Sing paling penting babagan dheweke

Source: www.habr.com

Add a comment