Keluaran Bottlerocket 1.2, pengedaran berdasarkan bekas terpencil

Keluaran pengedaran Linux Bottlerocket 1.2.0 tersedia, dibangunkan dengan penyertaan Amazon untuk pelancaran bekas terpencil yang cekap dan selamat. Alat pengedaran dan komponen kawalan ditulis dalam Rust dan diedarkan di bawah lesen MIT dan Apache 2.0. Ia menyokong menjalankan Bottlerocket pada kelompok Amazon ECS, VMware dan AWS EKS Kubernetes, serta mencipta binaan dan edisi tersuai yang membenarkan penggunaan pelbagai alat orkestrasi dan masa jalan untuk bekas.

Pengedaran menyediakan imej sistem tidak boleh dibahagikan secara atom dan automatik yang dikemas kini yang merangkumi kernel Linux dan persekitaran sistem yang minimum, termasuk hanya komponen yang diperlukan untuk menjalankan bekas. Persekitaran termasuk pengurus sistem systemd, pustaka Glibc, alat bina Buildroot, pemuat but GRUB, konfigurator rangkaian jahat, masa jalan kontena untuk bekas terpencil, platform orkestrasi kontena Kubernetes, aws-iam-authenticator dan Amazon Ejen ECS.

Alat orkestrasi kontena datang dalam bekas pengurusan berasingan yang didayakan secara lalai dan diurus melalui API dan Ejen SSM AWS. Imej asas tidak mempunyai shell arahan, pelayan SSH dan bahasa yang ditafsirkan (contohnya, tiada Python atau Perl) - alat pentadbiran dan alat penyahpepijatan diletakkan dalam bekas perkhidmatan yang berasingan, yang dilumpuhkan secara lalai.

Perbezaan utama daripada pengedaran serupa seperti Fedora CoreOS, CentOS/Red Hat Atomic Host ialah tumpuan utama untuk menyediakan keselamatan maksimum dalam konteks mengukuhkan perlindungan sistem daripada kemungkinan ancaman, menjadikannya lebih sukar untuk mengeksploitasi kelemahan dalam komponen OS dan meningkatkan pengasingan kontena . Bekas dicipta menggunakan mekanisme kernel Linux standard - cgroup, ruang nama dan seccomp. Untuk pengasingan tambahan, pengedaran menggunakan SELinux dalam mod "menguatkuasakan".

Pembahagian akar dipasang baca sahaja, dan pembahagian tetapan /etc dilekapkan dalam tmpfs dan dipulihkan kepada keadaan asalnya selepas dimulakan semula. Pengubahsuaian terus fail dalam direktori /etc, seperti /etc/resolv.conf dan /etc/containerd/config.toml, tidak disokong - untuk menyimpan tetapan secara kekal, anda mesti menggunakan API atau mengalihkan fungsi ke dalam bekas yang berasingan. Modul dm-verity digunakan untuk mengesahkan integriti partition akar secara kriptografi, dan jika percubaan untuk mengubah suai data pada tahap peranti blok dikesan, sistem akan but semula.

Kebanyakan komponen sistem ditulis dalam Rust, yang menyediakan ciri selamat memori untuk mengelakkan kelemahan yang disebabkan oleh capaian memori selepas bebas, penolakan penunjuk nol dan overrun penimbal. Apabila membina secara lalai, mod kompilasi "-enable-default-pie" dan "-enable-default-ssp" digunakan untuk mendayakan rawak ruang alamat fail boleh laku (PIE) dan perlindungan terhadap limpahan tindanan melalui penggantian kenari. Untuk pakej yang ditulis dalam C/C++, bendera "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" dan "-fstack-clash" adalah tambahan diaktifkan -perlindungan".

Dalam keluaran baharu:

  • Menambah sokongan untuk cermin pendaftaran imej kontena.
  • Menambahkan keupayaan untuk menggunakan sijil yang ditandatangani sendiri.
  • Pilihan tambahan untuk mengkonfigurasi nama hos.
  • Versi lalai bekas pentadbiran telah dikemas kini.
  • Menambah tetapan topologyManagerPolicy dan topologyManagerScope untuk kubelet.
  • Menambah sokongan untuk pemampatan kernel menggunakan algoritma zstd.
  • Keupayaan untuk memuatkan mesin maya ke dalam VMware dalam format OVA (Open Virtualization Format) disediakan.
  • Versi pengedaran aws-k8s-1.21 telah dikemas kini dengan sokongan untuk Kubernetes 1.21. Sokongan untuk aws-k8s-1.16 telah dihentikan.
  • Versi pakej dan kebergantungan yang dikemas kini untuk bahasa Rust.

Sumber: opennet.ru

Tambah komen