Version 1.2.0 av Linux-distributionen Bottlerocket är nu tillgänglig, utvecklad med hjälp av Amazon för effektiv och säker körning av isolerade containrar. Verktyg och styrkomponenter i distributionen är skrivna i Rust och distribueras under MIT- och Apache 2.0-licenser. Bottlerocket kan köras i Amazon ECS, VMware och AWS EKS Kubernetes-kluster, samt anpassa skräddarsydda byggnader och utgåvor som tillåter användning av olika orkestreringsverktyg och runtime för containrar.
Distributionen erbjuder en atomär och automatiskt uppdaterad odelbar systembild som inkluderar Linux-kärnan och en minimal systemmiljö, som innehåller endast de komponenter som krävs för att starta containrar. I miljön används systemhanteraren systemd, biblioteket Glibc, byggverktyget Buildroot, bootloadern GRUB, nätverkskonfiguratorn wicked, runtime för isolerade containrar containerd, orkestreringsplattformen Kubernetes, autentiseraren aws-iam-authenticator och Amazon ECS-agent.
Verktyg för orkestrering av containrar levereras i en separat styrcontainer, som aktiveras som standard och hanteras via API och AWS SSM Agent. Den grundläggande bilden saknar kommandotolk, server SSH och tolkade språk (t.ex. finns det varken Python eller Perl) – administratörsverktyg och felsökningsverktyg har flyttats till en separat tjänstecontainer, som är inaktiverad som standard.
En nyckelförändring jämfört med liknande distributioner, som Fedora CoreOS och CentOS/Red Hat Atomic Host, är den primära inriktningen på att erbjuda maximal säkerhet i sammanhanget av att stärka skyddet av systemet mot möjliga hot, komplicera utnyttjande av sårbarheter i operativsystemets komponenter och öka isoleringen av containrar. Containrar skapas med hjälp av de inbyggda mekanismerna i Linux-kärnan – cgroups, namnrymder och seccomp. För ytterligare isolering tillämpas SELinux i läget "enforcing".
Rot partitions are mounted in read-only mode, while the settings partition /etc is mounted in tmpfs and restores its original state after a reboot. Direct changes to files in the /etc directory, such as /etc/resolv.conf and /etc/containerd/config.toml, are not supported — to permanently save settings, use the API or isolate the functionality into separate containers. A dm-verity module is utilized for cryptographic verification of the root partition's integrity, and if any data modification attempts are detected at the block device level, the system will reboot.
Most system components are written in Rust, providing tools for safe memory operations that help avoid vulnerabilities caused by accessing memory areas after they have been freed, dereferencing null pointers, and buffer overflows. The default build modes apply "—enable-default-pie" and "—enable-default-ssp" to enable the Address Space Layout Randomization (ASLR) for executable files (PIE) and protect against stack overflow through canary substitution. For packages written in C/C++, additional flags "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS", and "-fstack-clash-protection" are included.
I den nya utgåvan:
- Support for container image registry mirrors has been added.
- The ability to use self-signed certificates has been introduced.
- A parameter for configuring the hostname has been added.
- The version of the default administrative container has been updated.
- TopologyManagerPolicy and topologyManagerScope settings have been added for kubelet.
- Support for kernel compression using the zstd algorithm has been added.
- It is now possible to boot into VMware virtuella maskiner in OVA (Open Virtualization Format) format.
- The aws-k8s-1.21 distribution variant has been updated with support for Kubernetes 1.21. Support for aws-k8s-1.16 has been discontinued.
- Updated package versions and dependencies for the Rust language.
Källa: opennet.ru
