Bottlerocket 1.8 tersedia, distribusi berdasarkan wadah terisolasi

Rilis distribusi Linux Bottlerocket 1.8.0 telah diterbitkan, 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:

  • Isi wadah administratif dan kontrol telah diperbarui.
  • Runtime untuk container yang terisolasi telah diperbarui ke cabang containerd 1.6.x.
  • Memastikan bahwa proses latar belakang yang mengoordinasikan pengoperasian kontainer dimulai ulang setelah perubahan pada penyimpanan sertifikat.
  • Dimungkinkan untuk mengatur parameter boot kernel melalui bagian Konfigurasi Boot.
  • Diaktifkan mengabaikan blok kosong saat memantau integritas partisi root menggunakan dm-verity.
  • Kemampuan untuk mengikat nama host secara statis di /etc/hosts telah disediakan.
  • Kemampuan untuk menghasilkan konfigurasi jaringan menggunakan utilitas netdog telah disediakan (perintah generate-net-config telah ditambahkan).
  • Opsi distribusi baru dengan dukungan untuk Kubernetes 1.23 telah diusulkan. Waktu startup untuk pod di Kubernetes telah dikurangi dengan menonaktifkan mode configMapAndSecretChangeDetectionStrategy. Menambahkan pengaturan kubelet baru: provider-id dan podPidsLimit.
  • Versi baru kit distribusi "aws-ecs-1-nvidia" untuk Amazon Elastic Container Service (Amazon ECS), yang disertakan dengan driver NVIDIA, telah diusulkan.
  • Menambahkan dukungan untuk perangkat penyimpanan Microchip Smart Storage dan MegaRAID SAS. Dukungan untuk kartu Ethernet pada chip Broadcom telah diperluas.
  • Versi paket dan dependensi yang diperbarui untuk bahasa Go dan Rust, serta versi paket dengan program pihak ketiga. Bottlerocket SDK telah diperbarui ke versi 0.26.0.

Sumber: opennet.ru

Tambah komentar