Amazon udgiver Bottlerocket 1.0.0, Linux-distribution baseret på isolerede containere

Amazon fremlagde første betydelige udgivelse af en dedikeret Linux-distribution Flaskelomme 1.0.0, designet til at køre isolerede containere effektivt og sikkert. Distributionens værktøjer og styrekomponenter er skrevet i Rust og spredning under MIT og Apache 2.0 licenser. Projektet udvikles på GitHub og er tilgængeligt for deltagelse af fællesskabsmedlemmer. Systemimplementeringsbilledet genereres til x86_64- og Aarch64-arkitekturer. OS er tilpasset til at køre på Amazon ECS og AWS EKS Kubernetes-klynger. Er forudsat værktøjer til at skabe dine egne samlinger og udgaver, som kan bruge andre orkestreringsværktøjer, kerner og runtime til containere.

Distributionen giver Linux-kernen og et minimalt systemmiljø, inklusive kun de komponenter, der er nødvendige for at køre containere. Blandt de pakker, der er involveret i projektet, er systemmanageren systemd, Glibc-biblioteket og monteringsværktøjerne
Buildroot, GRUB bootloader, netværkskonfigurator onde, køretid for isolerede containere indeholdt, Kubernetes containerorkestreringsplatform, aws-iam-authenticator og Amazon ECS-agent.

Fordelingen opdateres atomært og leveres i form af et udeleligt systembillede. To diskpartitioner er allokeret til systemet, hvoraf den ene indeholder det aktive system, og opdateringen kopieres til den anden. Efter opdateringen er implementeret, bliver den anden partition aktiv, og i den første, indtil næste opdatering kommer, gemmes den tidligere version af systemet, som du kan rulle tilbage til, hvis der opstår problemer. Opdateringer installeres automatisk uden administratorindblanding.

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 øger isoleringen af ​​containere. Containere er oprettet ved hjælp af standard Linux-kernemekanismer - cgroups, namespaces og seccomp. For yderligere isolering bruger distributionen SELinux i "håndhævende" tilstand, og modulet bruges til kryptografisk verifikation af integriteten af ​​rodpartitionen dm-verity. Hvis der registreres et forsøg på at ændre data på blokenhedsniveau, genstarter systemet.

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.

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 du bygger som standard, bruges "--enable-default-pie" og "--enable-default-ssp" kompileringstilstandene til at muliggøre randomisering af adresserummet for eksekverbare filer (PIE) og stak overløbsbeskyttelse via kanarie-substitution.
For pakker skrevet i C/C++ er yderligere flag inkluderet
"-Wall", "-Werror=format-sikkerhed", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" og "-fstack-clash-protection".

Container orkestreringsværktøjer leveres separat kontrolbeholder, som er aktiveret som standard og styres via 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 er placeret i separat servicebeholder, som er deaktiveret som standard.

Kilde: opennet.ru

Tilføj en kommentar