Frigivelse af Bottlerocket 1.2, en distribution baseret på isolerede beholdere

Udgivelsen af ​​Linux-distributionen Bottlerocket 1.2.0 er tilgængelig, udviklet med deltagelse af Amazon til effektiv og sikker lancering af isolerede containere. Distributionens værktøjer og kontrolkomponenter er skrevet i Rust og distribueret under MIT- og Apache 2.0-licenserne. Det understøtter at køre Bottlerocket på Amazon ECS, VMware og AWS EKS Kubernetes-klynger, samt at skabe brugerdefinerede builds og udgaver, der tillader brugen af ​​forskellige orkestrerings- og runtime-værktøjer til containere.

Distributionen giver et atomisk og automatisk opdateret udeleligt systembillede, der inkluderer Linux-kernen og et minimalt systemmiljø, inklusive kun de komponenter, der er nødvendige for at køre containere. Miljøet inkluderer systemd system manager, Glibc biblioteket, Buildroot build værktøjet, GRUB boot loader, wicked network configurator, containerd runtime for isolerede containere, Kubernetes container orkestrerings platform, aws-iam-autenticator og Amazon. ECS agent.

Container orkestreringsværktøjer kommer i en separat administrationsbeholder, der er aktiveret som standard og administreres gennem API og AWS SSM Agent. Basisbilledet mangler en kommandoskal, SSH-server og fortolkede sprog (for eksempel ingen Python eller Perl) - administrative værktøjer og fejlfindingsværktøjer placeres i en separat servicecontainer, som er deaktiveret som standard.

Den vigtigste forskel fra lignende distributioner såsom Fedora CoreOS, CentOS/Red Hat Atomic Host er det primære fokus på at levere maksimal sikkerhed i forbindelse med at styrke systembeskyttelsen mod mulige trusler, hvilket gør det sværere at udnytte sårbarheder i OS-komponenter og øge containerisoleringen . Containere er oprettet ved hjælp af standard Linux-kernemekanismer - cgroups, namespaces og seccomp. For yderligere isolation bruger distributionen SELinux i "håndhævende" tilstand.

Rodpartitionen er monteret skrivebeskyttet, og /etc-indstillingspartitionen monteres i tmpfs og gendannes til sin oprindelige tilstand efter en genstart. Direkte ændring af filer i /etc-mappen, såsom /etc/resolv.conf og /etc/containerd/config.toml, understøttes ikke - for at gemme indstillinger permanent, skal du bruge API'et eller flytte funktionaliteten til separate containere. dm-verity-modulet bruges til kryptografisk at verificere integriteten af ​​rodpartitionen, og hvis der opdages et forsøg på at ændre data på blokenhedsniveau, genstarter systemet.

De fleste systemkomponenter er skrevet i Rust, som giver hukommelsessikre funktioner for at undgå sårbarheder forårsaget af efterfri hukommelsesadgang, nul pointer-dereferencer og bufferoverskridelser. Når der bygges som standard, bruges kompileringstilstandene "-enable-default-pie" og "-enable-default-ssp" til at muliggøre randomisering af det eksekverbare filadresserum (PIE) og beskyttelse mod stak-overløb gennem canary substitution. For pakker skrevet i C/C++ er flagene "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" og "-fstack-clash" desuden aktiveret -beskyttelse".

I den nye udgivelse:

  • Tilføjet understøttelse af container image registry spejle.
  • Tilføjet muligheden for at bruge selvsignerede certifikater.
  • Tilføjet mulighed for at konfigurere værtsnavn.
  • Standardversionen af ​​den administrative container er blevet opdateret.
  • Tilføjet topologyManagerPolicy og topologyManagerScope-indstillinger for kubelet.
  • Tilføjet understøttelse af kernekomprimering ved hjælp af zstd-algoritmen.
  • Muligheden for at indlæse virtuelle maskiner i VMware i OVA-formatet (Open Virtualization Format) er tilvejebragt.
  • Distributionsversionen aws-k8s-1.21 er blevet opdateret med understøttelse af Kubernetes 1.21. Understøttelse af aws-k8s-1.16 er afbrudt.
  • Opdaterede pakkeversioner og afhængigheder for Rust-sproget.

Kilde: opennet.ru

Tilføj en kommentar