Liberigo de Bottlerocket 1.2, distribuo bazita sur izolitaj ujoj

La liberigo de la Linuksa distribuo Bottlerocket 1.2.0 disponeblas, evoluigita kun la partopreno de Amazon por la efika kaj sekura lanĉo de izolitaj ujoj. La iloj kaj kontrolkomponentoj de la distribuo estas skribitaj en Rust kaj distribuitaj sub la MIT kaj Apache 2.0-licencoj. Ĝi subtenas ruladon de Bottlerocket sur Amazon ECS, VMware kaj AWS EKS Kubernetes-aretoj, kaj ankaŭ krei kutimajn konstruojn kaj eldonojn, kiuj permesas la uzon de diversaj instrumentaj kaj rultempaj iloj por ujoj.

La distribuo provizas atome kaj aŭtomate ĝisdatigitan nedivideblan sistembildon, kiu inkluzivas la Linuksan kernon kaj minimuman sisteman medion, inkluzive de nur la komponantoj necesaj por ruli ujojn. La medio inkluzivas la systemd-administranton, la Glibc-bibliotekon, la Buildroot-konstruilon, la GRUB-ŝargilon, la malvirtan retan agordilon, la containerd-rultempon por izolitaj ujoj, la Kubernetes-ujon orkestra platformo, la aws-iam-authenticator kaj la Amazon ECS. agento.

Iloj de orkestrado de ujoj venas en aparta administrada ujo, kiu estas ebligita defaŭlte kaj administrita per la API kaj AWS SSM-Agente. Al la baza bildo mankas komanda ŝelo, SSH-servilo kaj interpretitaj lingvoj (ekzemple sen Python aŭ Perl) - administraj iloj kaj sencimigaj iloj estas metitaj en apartan servan ujo, kiu estas defaŭlte malŝaltita.

La ŝlosila diferenco de similaj distribuoj kiel Fedora CoreOS, CentOS/Red Hat Atomic Host estas la ĉefa fokuso pri disponigado de maksimuma sekureco en la kunteksto de plibonigo de sistemo-protekto kontraŭ eblaj minacoj, malfaciligante ekspluati vundeblecojn en OS-komponentoj kaj pliigante ujo-izoladon. . Ujoj estas kreitaj per normaj Linukso-kernaj mekanismoj - cgroups, nomspacoj kaj seccomp. Por plia izolado, la distribuo uzas SELinux en "deviga" reĝimo.

La radikdisko estas muntita nurlegebla, kaj la /etc-agorda diskparto estas muntita en tmpfs kaj restarigita al sia origina stato post rekomenco. Rekta modifo de dosieroj en la dosierujo /etc, kiel /etc/resolv.conf kaj /etc/containerd/config.toml, ne estas subtenata - por konstante konservi agordojn, vi devas uzi la API aŭ movi la funkciojn en apartajn ujojn. La modulo dm-verity estas uzata por kriptografie kontroli la integrecon de la radika sekcio, kaj se oni detektas provon modifi datumojn ĉe la bloka aparato, la sistemo rekomencas.

La plej multaj sistemkomponentoj estas skribitaj en Rust, kiu disponigas memor-sekurajn funkciojn por eviti vundeblecojn kaŭzitajn de post-liberaj memoraliroj, nulmontriloj dereferences, kaj bufrotropasoj. Konstruante defaŭlte, la kompilreĝimoj "-enable-default-pie" kaj "-enable-default-ssp" estas uzataj por ebligi hazardigon de la plenumebla dosiera adresspaco (PIE) kaj protekton kontraŭ staksuperfluoj per kanaria anstataŭigo. Por pakaĵoj skribitaj en C/C++, la flagoj "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" kaj "-fstack-clash" estas aldone ebligita -protekto".

En la nova eldono:

  • Aldonita subteno por ujbildaj registrospeguloj.
  • Aldonita la kapablo uzi memsubskribitajn atestilojn.
  • Aldonita opcio por agordi gastigan nomon.
  • La defaŭlta versio de la administra ujo estis ĝisdatigita.
  • Aldonitaj agordoj de topologyManagerPolicy kaj topologyManagerScope por kubelet.
  • Aldonita subteno por kerno-kunpremado uzante la zstd-algoritmon.
  • La kapablo ŝargi virtualajn maŝinojn en VMware en la formato OVA (Open Virtualization Format) estas provizita.
  • La distribua versio aws-k8s-1.21 estis ĝisdatigita kun subteno por Kubernetes 1.21. Subteno por aws-k8s-1.16 estis nuligita.
  • Ĝisdatigitaj pakaĵversioj kaj dependecoj por la Rust-lingvo.

fonto: opennet.ru

Aldoni komenton