Lansarea Bottlerocket 1.2, o distribuție bazată pe containere izolate

Este disponibilă lansarea distribuției Linux Bottlerocket 1.2.0, dezvoltată cu participarea Amazon pentru lansarea eficientă și sigură a containerelor izolate. Instrumentele și componentele de control ale distribuției sunt scrise în Rust și distribuite sub licențe MIT și Apache 2.0. Acceptă rularea Bottlerocket pe clustere Amazon ECS, VMware și AWS EKS Kubernetes, precum și crearea de versiuni și ediții personalizate care permit utilizarea diferitelor instrumente de orchestrare și de rulare pentru containere.

Distribuția oferă o imagine de sistem indivizibilă actualizată atomic și automat, care include nucleul Linux și un mediu de sistem minim, incluzând doar componentele necesare rulării containerelor. Mediul include managerul de sistem systemd, biblioteca Glibc, instrumentul de compilare Buildroot, încărcătorul de pornire GRUB, configuratorul de rețea rău, timpul de rulare containerd pentru containere izolate, platforma de orchestrare a containerelor Kubernetes, aws-iam-authenticator și Amazon. agent ECS.

Instrumentele de orchestrare a containerelor vin într-un container de gestionare separat, care este activat implicit și gestionat prin API și AWS SSM Agent. Imaginea de bază nu are un shell de comandă, un server SSH și limbi interpretate (de exemplu, fără Python sau Perl) - instrumentele administrative și instrumentele de depanare sunt plasate într-un container de servicii separat, care este dezactivat implicit.

Diferența esențială față de distribuțiile similare, cum ar fi Fedora CoreOS, CentOS/Red Hat Atomic Host, este concentrarea principală pe asigurarea securității maxime în contextul consolidării protecției sistemului împotriva posibilelor amenințări, ceea ce face mai dificilă exploatarea vulnerabilităților componentelor sistemului de operare și creșterea izolării containerelor. . Containerele sunt create folosind mecanisme standard ale nucleului Linux - cgroups, namespaces și seccomp. Pentru o izolare suplimentară, distribuția folosește SELinux în modul „aplicare”.

Partiția rădăcină este montată numai în citire, iar partiția de setări /etc este montată în tmpfs și restaurată la starea inițială după o repornire. Modificarea directă a fișierelor din directorul /etc, cum ar fi /etc/resolv.conf și /etc/containerd/config.toml, nu este acceptată - pentru a salva permanent setările, trebuie să utilizați API-ul sau să mutați funcționalitatea în containere separate. Modulul dm-verity este utilizat pentru a verifica criptografic integritatea partiției rădăcină și, dacă este detectată o încercare de modificare a datelor la nivel de dispozitiv bloc, sistemul repornește.

Cele mai multe componente ale sistemului sunt scrise în Rust, care oferă funcții de siguranță pentru memorie pentru a evita vulnerabilitățile cauzate de accesările la memorie după eliberarea, dereferințele pointerului nul și depășirile de buffer. Când se construiește în mod implicit, modurile de compilare „-enable-default-pie” și „-enable-default-ssp” sunt folosite pentru a permite randomizarea spațiului de adresă a fișierelor executabile (PIE) și protecția împotriva depășirilor de stive prin înlocuirea canary. Pentru pachetele scrise în C/C++, steagurile „-Wall”, „-Werror=format-security”, „-Wp,-D_FORTIFY_SOURCE=2”, „-Wp,-D_GLIBCXX_ASSERTIONS” și „-fstack-clash” sunt în plus activat -protecție".

În noua versiune:

  • S-a adăugat suport pentru oglinzile de registru de imagini ale containerului.
  • S-a adăugat posibilitatea de a utiliza certificate autosemnate.
  • Opțiune adăugată pentru configurarea numelui de gazdă.
  • Versiunea implicită a containerului administrativ a fost actualizată.
  • S-au adăugat setările topologyManagerPolicy și topologyManagerScope pentru kubelet.
  • S-a adăugat suport pentru compresia nucleului folosind algoritmul zstd.
  • Este oferită capacitatea de a încărca mașini virtuale în VMware în format OVA (Open Virtualization Format).
  • Versiunea de distribuție aws-k8s-1.21 a fost actualizată cu suport pentru Kubernetes 1.21. Suportul pentru aws-k8s-1.16 a fost întrerupt.
  • Versiuni de pachete și dependențe actualizate pentru limba Rust.

Sursa: opennet.ru

Adauga un comentariu