Bottlerocket 1.8 disponeblas, distribuo bazita sur izolitaj ujoj

La liberigo de la Linuksa distribuo Bottlerocket 1.8.0 estis publikigita, 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:

  • La enhavo de la administraj kaj kontrolaj ujoj estis ĝisdatigitaj.
  • Runtime por izolitaj ujoj estis ĝisdatigita al la containerd 1.6.x branĉo.
  • Certigas, ke fonaj procezoj, kiuj kunordigas la funkciadon de ujoj, estas rekomencitaj post ŝanĝoj al la atestilbutiko.
  • Eblas agordi kernajn lanĉajn parametrojn per la sekcio Boot Configuration.
  • Ebligita ignorado de malplenaj blokoj dum monitorado de la integreco de la radika sekcio uzante dm-verity.
  • La kapablo statike ligi gastigajn nomojn en /etc/hosts estis disponigita.
  • La kapablo generi retan agordon per la netdog-ilaĵo estis disponigita (la komando generate-net-config estis aldonita).
  • Novaj distribuopcioj kun subteno por Kubernetes 1.23 estis proponitaj. La ektempo por podoj en Kubernetes estis reduktita per malŝalto de la reĝimo configMapAndSecretChangeDetectionStrategy. Aldonitaj novaj kubelet-agordoj: provizanto-id kaj podPidsLimit.
  • Nova versio de la distribua ilaro "aws-ecs-1-nvidia" por Amazon Elastic Container Service (Amazon ECS), provizita per NVIDIA-ŝoforoj, estis proponita.
  • Aldonita subteno por Microchip Smart Storage kaj MegaRAID SAS-stokaparatoj. Subteno por Ethernet-kartoj sur Broadcom-blatoj estis vastigita.
  • Ĝisdatigitaj pakaĵversioj kaj dependencajoj por la lingvoj Go kaj Rust, same kiel versioj de pakaĵoj kun triapartaj programoj. Bottlerocket SDK estis ĝisdatigita al versio 0.26.0.

fonto: opennet.ru

Aldoni komenton