Bottlerocket 1.3-ի թողարկում, բաշխում, որը հիմնված է մեկուսացված տարաների վրա

Հրապարակվել է Linux բաշխման Bottlerocket 1.3.0 թողարկումը, որը մշակվել է Amazon-ի մասնակցությամբ՝ մեկուսացված բեռնարկղերի արդյունավետ և անվտանգ գործարկման համար: Բաշխման գործիքները և կառավարման բաղադրիչները գրված են Rust-ով և տարածվում են MIT և Apache 2.0 լիցենզիաների ներքո: Այն աջակցում է Bottlerocket-ի գործարկումը Amazon ECS, VMware և AWS EKS Kubernetes կլաստերների վրա, ինչպես նաև ստեղծում է հատուկ կառուցվածքներ և հրատարակություններ, որոնք թույլ են տալիս օգտագործել տարբեր նվագախմբային և գործարկման գործիքներ կոնտեյներների համար:

Բաշխումն ապահովում է ատոմային և ավտոմատ կերպով թարմացվող անբաժանելի համակարգի պատկեր, որը ներառում է Linux միջուկը և նվազագույն համակարգի միջավայրը, ներառյալ միայն այն բաղադրիչները, որոնք անհրաժեշտ են կոնտեյներներ գործարկելու համար: Շրջակա միջավայրը ներառում է systemd համակարգի կառավարիչը, Glibc գրադարանը, Buildroot build գործիքը, GRUB boot loader-ը, չար ցանցի կոնֆիգուրատորը, մեկուսացված բեռնարկղերի կոնտեյներների գործարկման ժամանակը, Kubernetes կոնտեյներների նվագախմբային հարթակը, aws-iam-authenticator-ը և Amazon-ը: ECS գործակալ.

Կոնտեյներների նվագախմբի գործիքները գալիս են առանձին կառավարման կոնտեյներով, որը միացված է լռելյայնորեն և կառավարվում է API-ի և AWS SSM գործակալի միջոցով: Հիմնական պատկերում բացակայում է հրամանի վահանակը, SSH սերվերը և մեկնաբանվող լեզուներ (օրինակ՝ ոչ Python կամ Perl) - վարչական գործիքները և վրիպազերծման գործիքները տեղադրվում են առանձին սպասարկման կոնտեյներով, որը լռելյայն անջատված է:

Հիմնական տարբերությունը նմանատիպ բաշխումներից, ինչպիսիք են Fedora CoreOS-ը, CentOS/Red Hat Atomic Host-ը, հիմնական ուշադրությունն է առավելագույն անվտանգության ապահովման վրա՝ հնարավոր սպառնալիքներից համակարգի պաշտպանության ամրապնդման համատեքստում, ինչը դժվարացնում է ՕՀ բաղադրիչների խոցելիության օգտագործումը և կոնտեյների մեկուսացման ավելացումը: . Կոնտեյներները ստեղծվում են Linux միջուկի ստանդարտ մեխանիզմների միջոցով՝ cgroups, namespaces և seccomp: Լրացուցիչ մեկուսացման համար բաշխումն օգտագործում է SELinux «պարտադրման» ռեժիմում:

Արմատային միջնորմը տեղադրվում է միայն կարդալու համար, իսկ /etc կարգավորումների բաժինը տեղադրվում է tmpfs-ով և վերագործարկումից հետո վերականգնվում է իր սկզբնական վիճակին: /etc գրացուցակի ֆայլերի ուղղակի փոփոխությունները, ինչպիսիք են /etc/resolv.conf և /etc/containerd/config.toml, չեն աջակցվում. կարգավորումները մշտապես պահպանելու համար դուք պետք է օգտագործեք API-ն կամ տեղափոխեք գործառույթը առանձին բեռնարկղերում: dm-verity մոդուլն օգտագործվում է արմատային բաժանման ամբողջականությունը գաղտնագրորեն ստուգելու համար, և եթե հայտնաբերվում է տվյալների բլոկ սարքի մակարդակում փոփոխելու փորձ, համակարգը վերագործարկում է:

Համակարգի բաղադրիչներից շատերը գրված են Rust-ով, որն ապահովում է հիշողության համար անվտանգ գործառույթներ՝ խուսափելու համար խոցելիություններից, որոնք առաջանում են հիշողության ազատ մուտքի, զրո ցուցիչի վերափոխումների և բուֆերների գերակատարումների հետևանքով: Լռելյայն կառուցելիս կոմպիլյացիոն ռեժիմները «-enable-default-pie» և «-enable-default-ssp» օգտագործվում են գործարկվող ֆայլի հասցեների տարածության (PIE) պատահականությունը հնարավոր դարձնելու և դեղձանիկ փոխարինման միջոցով կույտերի արտահոսքից պաշտպանվելու համար: C/C++-ով գրված փաթեթների համար «-Wall», «-Werror=format-security», «-Wp,-D_FORTIFY_SOURCE=2», «-Wp,-D_GLIBCXX_ASSERTIONS» և «-fstack-clash» դրոշները լրացուցիչ են: միացված է - պաշտպանություն»:

Նոր թողարկումում.

  • Շտկվել են դոկերի և գործարկման ժամանակի կոնտեյներային գործիքների (CVE-2021-41089, CVE-2021-41091, CVE-2021-41092, CVE-2021-41103) խոցելիությունը՝ կապված մուտքի բազային իրավունքների սխալ կարգավորումների հետ, ինչը թույլ է տվել դուրս գալ անարտոնյալ օգտատերերին։ գրացուցակ և գործարկել արտաքին ծրագրեր:
  • IPv6 աջակցությունն ավելացվել է kubelet-ին և pluto-ին:
  • Հնարավոր է վերագործարկել կոնտեյները դրա կարգավորումները փոխելուց հետո:
  • Amazon EC2 M6i օրինակների աջակցությունն ավելացվել է eni-max-pods փաթեթին:
  • Open-vm-tools-ն ավելացրել է սարքի զտիչների աջակցությունը՝ հիմնված Cilium գործիքակազմի վրա:
  • x86_64 պլատֆորմի համար ներդրված է հիբրիդային բեռնման ռեժիմ (EFI-ի և BIOS-ի աջակցությամբ):
  • Փաթեթի թարմացված տարբերակները և կախվածությունները Rust լեզվի համար:
  • Kubernetes 8-ի վրա հիմնված aws-k1.17s-1.17 բաշխման տարբերակի աջակցությունը դադարեցվել է: Խորհուրդ է տրվում օգտագործել aws-k8s-1.21 տարբերակը Kubernetes 1.21-ի աջակցությամբ: K8s տարբերակներն օգտագործում են cgroup runtime.slice և system.slice կարգավորումները:

Source: opennet.ru

Добавить комментарий