Distribusi Linux minimalis, Bottlerocket, parantos dileupaskeun pikeun ngajalankeun wadah. Hal pangpentingna ngeunaan anjeunna

Distribusi Linux minimalis, Bottlerocket, parantos dileupaskeun pikeun ngajalankeun wadah. Hal pangpentingna ngeunaan anjeunna

Perusahaan Amazon ngumumkeun ngeunaan release final Botol handap - distribusi khusus pikeun ngajalankeun wadah sareng ngatur sacara efektif.

Bottlerocket (nyaéta, nami anu dipasihkeun ka rokét bubuk hideung buatan bumi leutik) sanés OS anu munggaran pikeun wadahna, tapi kamungkinan éta bakal nyebar berkat integrasi standar sareng jasa AWS. Sanaos sistemna museur kana awan Amazon, kodeu open source ngamungkinkeun éta diwangun dimana waé: sacara lokal dina server, dina Raspberry Pi, dina méga anu bersaing, bahkan dina lingkungan anu teu aya wadahna.

Ieu mangrupikeun gaganti anu leres pikeun distribusi CoreOS anu dikubur Red Hat.

Nyatana, divisi Layanan Web Amazon parantos ngagaduhan Amazon Linux, anu nembe kaluar dina versi kadua: éta distribusi tujuan umum anu tiasa dijalankeun dina wadah Docker atanapi nganggo Linux KVM, Microsoft Hyper-V, sareng VMware. hypervisors ESXi. Ieu dioptimalkeun pikeun ngajalankeun dina awan AWS, tapi ku sékrési Bottlerocket, dulur didorong pikeun ngamutahirkeun ka sistem anyar nu leuwih aman, modern, sarta ngagunakeun sumberdaya pangsaeutikna.

AWS ngumumkeun Bottlerocket dina Maret 2020. Anjeunna langsung ngaku yén ieu sanés "Linux pikeun wadah" anu munggaran, nyarioskeun CoreOS, Rancher OS sareng Project Atomic salaku sumber inspirasi. Pamekar nyerat yén sistem operasi mangrupikeun "hasil tina palajaran anu kami pelajari tina ngajalankeun jasa produksi dina skala Amazon pikeun waktos anu lami, sareng pangalaman anu kami peroleh dina genep taun ka pengker ngeunaan cara ngajalankeun wadah."

minimalism ekstrim

Linux dilucuti tina sagalana nu teu diperlukeun pikeun ngajalankeun peti. Desain ieu, nurutkeun pausahaan, ngurangan beungeut serangan.

Ieu ngandung harti yén pakét pangsaeutikna dipasang dina sistem dasar, nu matak ngamudahkeun pikeun ngajaga tur ngamutahirkeun OS, sarta ogé ngurangan kamungkinan masalah alatan kagumantungan, ngurangan pamakéan sumberdaya. Dasarna, sadayana di dieu tiasa dianggo di jero wadah anu misah, sareng sistem dasarna praktis bulistir.

Amazon ogé parantos ngahapus sadaya cangkang sareng juru, ngaleungitkeun résiko aranjeunna dianggo atanapi pangguna ngahaja naékkeun hak husus. Demi minimalism sareng kaamanan, gambar dasar henteu kalebet cangkang paréntah, server SSH, atanapi basa anu diinterpretasi sapertos Python. Alat administrator disimpen dina wadah jasa anu misah, anu ditumpurkeun sacara standar.

Sistem dikokolakeun ku dua cara: ngalangkungan API sareng orkestrasi.

Gantina manajer pakét anu ngamutahirkeun potongan parangkat lunak individu, Bottlerocket ngaunduh gambar filesystem lengkep sareng reboots kana éta. Upami beban gagal, éta otomatis digulung deui, sareng kagagalan beban kerja tiasa memicu rollback sacara manual (paréntah via API).

Rangka TUF (The Update Framework) ngundeur apdet dumasar-gambar kana partisi alternatif atawa "unmounted". Dua partisi disk dialokasikeun pikeun sistem, salah sahijina ngandung sistem aktip, sareng pembaruan disalin ka kadua. Dina hal ieu, partisi root dipasang dina mode baca wungkul, sarta partisi /etc dipasang sareng sistem file dina RAM tmpfs tur malikkeun kaayaan aslina sanggeus balikan deui a. Modifikasi langsung tina file konfigurasi di /etc teu dirojong: nyimpen setelan Anjeun kudu make API atawa mindahkeun fungsionalitas kana wadahna misah.

Distribusi Linux minimalis, Bottlerocket, parantos dileupaskeun pikeun ngajalankeun wadah. Hal pangpentingna ngeunaan anjeunna
skéma update API

kasalametan

Wadah diciptakeun ku mékanisme standar kernel Linux - cgroups, namespaces sareng seccomp, sareng dianggo salaku sistem kontrol aksés paksa, nyaéta, pikeun isolasi tambahan. SELinux dina modeu "enforcing".

Sacara standar, kawijakan diaktipkeun pikeun ngabagi sumber daya antara wadah sareng kernel. Binari ditangtayungan ku umbul pikeun nyegah pangguna atanapi program ngaéksekusi aranjeunna. Sareng upami aya anu dugi ka sistem file, Bottlerocket nawiskeun alat pikeun mariksa sareng ngalacak parobihan anu dilakukeun.

Modeu "boot diverifikasi" dilaksanakeun ngaliwatan fungsi alat-mapper-verity (dm-kabeneran), anu mariksa integritas partisi akar nalika boot. AWS ngajelaskeun dm-verity salaku "fitur kernel Linux anu nyayogikeun pamariksaan integritas pikeun nyegah malware ngajalankeun dina OS, sapertos nimpa parangkat lunak sistem inti."

Aya ogé saringan dina sistem eGMP (BPF diperpanjang, dimekarkeun ku Alexey Starovoitov), anu ngamungkinkeun modul kernel diganti ku program BPF anu langkung aman pikeun operasi sistem tingkat rendah.

Modél palaksanaan
Pamaké diartikeun
Nyusun
kasalametan
Modeu gagalna
Aksés ka sumberdaya

Pamaké
tugasna
nuhun
naon waé
hak pamaké
ngaganggu palaksanaan
Sistim panggero, kasalahan

Inti
tugasna
teu
statik
teu
panik kernel
lempeng

GMP
acara
nuhun
JIT, CO-RE
verifikasi, JIT
pesen kasalahan
helpers kawates

Kumaha BPF béda ti pamaké biasa atawa kode tingkat kernel sumber

AWS ceuk Bottlerocket "employs hiji model operasi anu salajengna ngaronjatkeun kaamanan ku nyegah sambungan ka server produksi kalawan hak husus administrasi" na nyaeta "cocog pikeun sistem disebarkeun badag mana kontrol leuwih unggal host individu diwatesan."

Wadah administrator disadiakeun pikeun administrator sistem. Tapi AWS henteu nyangka yén admin sering kedah damel di jero Bottlerocket: "Kalakuan asup kana conto Bottlerocket anu misah dimaksudkeun pikeun operasi anu jarang: debugging canggih sareng ngungkulan," nulis pamekar.

Basa keyeng

Instrumentasi OS dina luhureun kernel lolobana ditulis dina Rust. Ieu basa téh ku alamna ngurangan kamungkinan aksés memori unsafejeung ngaleungitkeun kaayaan balapan antara benang.

Bandéra diterapkeun sacara standar nalika ngawangun --enable-default-pie и --enable-default-ssp pikeun ngaktifkeun randomisasi rohangan alamat file anu tiasa dieksekusi (posisi-bebas laksana, PIE) jeung panyalindungan overflow tumpukan.

Pikeun C / C ++ pakét, umbul tambahan kaasup -Wall, -Werror=format-security, -Wp,-D_FORTIFY_SOURCE=2, -Wp,-D_GLIBCXX_ASSERTIONS и -fstack-clash-protection.

Salian Rust sareng C / C ++, sababaraha bungkusan ditulis dina Go.

Integrasi sareng jasa AWS

Beda tina sistem operasi wadahna anu sami nyaéta Amazon parantos ngaoptimalkeun Bottlerocket pikeun ngajalankeun AWS sareng ngahijikeun sareng jasa AWS anu sanés.

Orchestrator wadah anu pang populerna nyaéta Kubernetes, janten AWS parantos ngenalkeun integrasi sareng Enterprise Kubernetes Service (EKS) sorangan. Alat orkestrasi asalna dina wadah kontrol anu misah bottlerocket-kontrol-wadah, anu diaktipkeun sacara standar sareng dikokolakeun ngaliwatan Agen API sareng AWS SSM.

Éta bakal pikaresepeun pikeun ningali upami Bottlerocket angkat, upami gagalna sababaraha inisiatif anu sami dina jaman baheula. Contona, PhotonOS ti Vmware tétéla jadi unclaimed, sarta RedHat meuli CoreOS na nutup proyék, nu dianggap panaratas dina widang.

Integrasi Bottlerocket kana jasa AWS ngajadikeun sistem ieu unik dina cara sorangan. Ieu panginten alesan utama naha sababaraha pangguna langkung resep Bottlerocket tibatan distro sanés sapertos CoreOS atanapi Alpine. Sistim nu mimitina dirancang pikeun gawé bareng EKS na ECS, tapi urang ngulang yén ieu teu perlu. Anu mimiti, Bottlerocket tiasa ngumpul sorangan tur ngagunakeun eta, contona, salaku solusi hosted. Kadua, pangguna EKS sareng ECS ​​masih bakal gaduh kamampuan milih OS na.

Kodeu sumber Bottlerocket diterbitkeun dina GitHub handapeun lisénsi Apache 2.0. Pamekar geus geus ngabales laporan bug sareng pamundut fitur.

salaku iklan

VDSina nawaran VDS kalawan bayaran poean. Kasebut nyaéta dimungkinkeun pikeun masang sistem operasi naon waé, kalebet tina gambar anjeun nyalira. Unggal server disambungkeun ka saluran Internet 500 Megabits sarta ditangtayungan tina serangan DDoS haratis!

Distribusi Linux minimalis, Bottlerocket, parantos dileupaskeun pikeun ngajalankeun wadah. Hal pangpentingna ngeunaan anjeunna

sumber: www.habr.com

Tambahkeun komentar