Pelepasan Bottlerocket 1.2, distribusi berdasarkan wadah terisolasi

Rilis distribusi Linux Bottlerocket 1.2.0 tersedia, dikembangkan dengan partisipasi Amazon untuk peluncuran kontainer terisolasi yang efisien dan aman. Alat distribusi dan komponen kontrol ditulis dalam Rust dan didistribusikan di bawah lisensi MIT dan Apache 2.0. Ini mendukung menjalankan Bottlerocket di klaster Kubernetes Amazon ECS, VMware dan AWS EKS, serta membuat build dan edisi khusus yang memungkinkan penggunaan berbagai alat orkestrasi dan runtime untuk container.

Distribusi ini menyediakan citra sistem tak terpisahkan yang diperbarui secara atom dan otomatis yang mencakup kernel Linux dan lingkungan sistem minimal, termasuk hanya komponen yang diperlukan untuk menjalankan container. Lingkungan tersebut mencakup manajer sistem systemd, perpustakaan Glibc, alat build Buildroot, boot loader GRUB, konfigurator jaringan jahat, runtime containerd untuk container terisolasi, platform orkestrasi container Kubernetes, aws-iam-authenticator, dan Amazon Agen ECS.

Alat orkestrasi kontainer hadir dalam kontainer manajemen terpisah yang diaktifkan secara default dan dikelola melalui API dan AWS SSM Agent. Gambar dasar tidak memiliki shell perintah, server SSH, dan bahasa yang ditafsirkan (misalnya, tidak ada Python atau Perl) - alat administratif dan alat debugging ditempatkan dalam wadah layanan terpisah, yang dinonaktifkan secara default.

Perbedaan utama dari distribusi serupa seperti Fedora CoreOS, CentOS/Red Hat Atomic Host adalah fokus utama dalam memberikan keamanan maksimum dalam rangka memperkuat perlindungan sistem dari kemungkinan ancaman, mempersulit eksploitasi kerentanan pada komponen OS dan meningkatkan isolasi container. . Kontainer dibuat menggunakan mekanisme kernel Linux standar - cgroups, namespace, dan seccomp. Untuk isolasi tambahan, distribusi menggunakan SELinux dalam mode β€œmenegakkan”.

Partisi root dipasang hanya-baca, dan partisi pengaturan /etc dipasang di tmpfs dan dikembalikan ke keadaan semula setelah restart. Modifikasi langsung file di direktori /etc, seperti /etc/resolv.conf dan /etc/containerd/config.toml, tidak didukung - untuk menyimpan pengaturan secara permanen, Anda harus menggunakan API atau memindahkan fungsionalitas ke dalam wadah terpisah. Modul dm-verity digunakan untuk memverifikasi integritas partisi root secara kriptografis, dan jika upaya untuk mengubah data pada tingkat perangkat blok terdeteksi, sistem akan reboot.

Sebagian besar komponen sistem ditulis dalam Rust, yang menyediakan fitur pengaman memori untuk menghindari kerentanan yang disebabkan oleh akses memori setelah bebas, dereferensi penunjuk nol, dan buffer overruns. Saat membangun secara default, mode kompilasi "-enable-default-pie" dan "-enable-default-ssp" digunakan untuk mengaktifkan pengacakan ruang alamat file yang dapat dieksekusi (PIE) dan perlindungan terhadap stack overflow melalui substitusi canary. Untuk paket yang ditulis dalam C/C++, flag β€œ-Wall”, β€œ-Werror=format-security”, β€œ-Wp,-D_FORTIFY_SOURCE=2”, β€œ-Wp,-D_GLIBCXX_ASSERTIONS” dan β€œ-fstack-clash” juga ditambahkan. diaktifkan -perlindungan".

Dalam rilis baru:

  • Menambahkan dukungan untuk mirror registri gambar kontainer.
  • Menambahkan kemampuan untuk menggunakan sertifikat yang ditandatangani sendiri.
  • Opsi tambahan untuk mengonfigurasi nama host.
  • Versi default penampung administratif telah diperbarui.
  • Menambahkan pengaturan topologyManagerPolicy dan topologyManagerScope untuk kubelet.
  • Menambahkan dukungan untuk kompresi kernel menggunakan algoritma zstd.
  • Kemampuan untuk memuat mesin virtual ke VMware dalam format OVA (Open Virtualization Format) disediakan.
  • Versi distribusi aws-k8s-1.21 telah diperbarui dengan dukungan untuk Kubernetes 1.21. Dukungan untuk aws-k8s-1.16 telah dihentikan.
  • Versi paket dan dependensi yang diperbarui untuk bahasa Rust.

Sumber: opennet.ru

Tambah komentar