Keluaran Bottlerocket 1.7, pengedaran berdasarkan bekas terpencil

Keluaran pengedaran Linux Bottlerocket 1.7.0 telah diterbitkan, 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:

  • Apabila memasang pakej RPM, adalah mungkin untuk menjana senarai atur cara dalam format JSON dan melekapkannya ke dalam bekas hos sebagai fail /var/lib/bottlerocket/inventory/application.json untuk mendapatkan maklumat tentang pakej yang tersedia.
  • Bekas "pentadbir" dan "kawalan" telah dikemas kini.
  • Versi pakej dan kebergantungan dikemas kini untuk bahasa Go dan Rust.
  • Versi pakej yang dikemas kini dengan program pihak ketiga.
  • Isu konfigurasi tmpfilesd untuk kmod-5.10-nvidia telah diselesaikan.
  • Apabila memasang tuftool, versi pergantungan dipautkan.

Sumber: opennet.ru

Tambah komen