Bottlerocket 1.8 er tilgængelig, en distribution baseret på isolerede beholdere

Udgivelsen af ​​Linux-distributionen Bottlerocket 1.8.0 er blevet offentliggjort, 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:

  • Indholdet af administrations- og kontrolbeholderne er blevet opdateret.
  • Runtime for isolerede containere er blevet opdateret til containerd 1.6.x-grenen.
  • Sikrer, at baggrundsprocesser, der koordinerer driften af ​​containere, genstartes efter ændringer i certifikatlageret.
  • Det er muligt at indstille kernestartparametre gennem Boot Configuration sektionen.
  • Aktiveret ignorering af tomme blokke ved overvågning af integriteten af ​​rodpartitionen ved hjælp af dm-verity.
  • Der er givet mulighed for statisk at binde værtsnavne i /etc/hosts.
  • Muligheden for at generere en netværkskonfiguration ved hjælp af netdog-værktøjet er blevet tilvejebragt (kommandoen generer-net-config er blevet tilføjet).
  • Nye distributionsmuligheder med understøttelse af Kubernetes 1.23 er blevet foreslået. Opstartstiden for pods i Kubernetes er blevet reduceret ved at deaktivere tilstanden configMapAndSecretChangeDetectionStrategy. Tilføjet nye kubelet-indstillinger: provider-id og podPidsLimit.
  • En ny version af distributionssættet "aws-ecs-1-nvidia" til Amazon Elastic Container Service (Amazon ECS), der leveres med NVIDIA-drivere, er blevet foreslået.
  • Tilføjet understøttelse af Microchip Smart Storage og MegaRAID SAS-lagringsenheder. Understøttelse af Ethernet-kort på Broadcom-chips er blevet udvidet.
  • Opdaterede pakkeversioner og afhængigheder for Go- og Rust-sprogene samt versioner af pakker med tredjepartsprogrammer. Bottlerocket SDK er blevet opdateret til version 0.26.0.

Kilde: opennet.ru

Tilføj en kommentar