Perusahaan Amazon
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
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 /etc
dipasang sareng sistem file dina RAM /etc
teu dirojong: nyimpen setelan Anjeun kudu make API atawa mindahkeun fungsionalitas kana wadahna misah.
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.
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 (
Aya ogé saringan dina sistem
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
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,"
Basa keyeng
Instrumentasi OS dina luhureun kernel lolobana ditulis dina Rust. Ieu basa téh ku alamna
Bandéra diterapkeun sacara standar nalika ngawangun --enable-default-pie
и --enable-default-ssp
pikeun ngaktifkeun randomisasi rohangan alamat file anu tiasa dieksekusi (
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
É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
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
Kodeu sumber Bottlerocket diterbitkeun dina GitHub handapeun lisénsi Apache 2.0. Pamekar geus geus
salaku iklan
VDSina nawaran
sumber: www.habr.com