Թողարկումը հրապարակվել է LinuxBottlerocket 1.3.0-ը, որը մշակվել է Amazon-ի հետ համատեղ, նախատեսված է մեկուսացված կոնտեյներների արդյունավետ և անվտանգ աշխատանքի համար: Բաշխման գործիքակազմը և կառավարման բաղադրիչները գրված են Rust լեզվով և լիցենզավորված են MIT և Apache 2.0 լիցենզիաներով: Bottlerocket-ը աշխատում է Amazon ECS, VMware և AWS EKS Kubernetes կլաստերների վրա, ինչպես նաև աջակցում է հատուկ կառուցվածքներ և հրատարակություններ, որոնք աջակցում են տարբեր կոնտեյներների օրկեստրացիայի և գործարկման գործիքների օգտագործմանը:
Բաշխումը ապահովում է ատոմային և ավտոմատ կերպով թարմացվող անբաժանելի համակարգի պատկեր, ներառյալ միջուկը։ Linux և մինիմալ համակարգային միջավայր, որը ներառում է միայն կոնտեյներների գործարկման համար անհրաժեշտ բաղադրիչները: Այս միջավայրը ներառում է systemd համակարգի կառավարիչը, Glibc գրադարանը, Buildroot կառուցման գործիքակազմը, GRUB բեռնիչը, Wicked ցանցի կոնֆիգուրատորը, մեկուսացված կոնտեյներների համար նախատեսված containerd runtime-ը, Kubernetes կոնտեյներների կազմակերպման հարթակը, aws-iam-authenticator նույնականացնողը և Amazon ECS գործակալը:
Կոնտեյներների օրկեստրացիայի գործիքները մատակարարվում են առանձին կառավարման կոնտեյներով, որը միացված է լռելյայնորեն և կառավարվում է API-ի և AWS SSM Agent-ի միջոցով: Հիմնական պատկերը չի ներառում հրամանների շերտ: սերվեր SSH և մեկնաբանվող լեզուներ (օրինակ՝ առանց Python կամ Perl) - ադմինիստրատորի և վրիպազերծման գործիքները գտնվում են առանձին սպասարկման կոնտեյներում, որը լռելյայնորեն անջատված է:
Նմանատիպ բաշխումներից, ինչպիսին է Fedora CoreOS-ը, հիմնական տարբերությունն այն է, որ CentOSRed 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» դրոշները լրացուցիչ են: միացված է - պաշտպանություն»:
Նոր թողարկումում.
- Ուղղվել են docker-ի և runtime կոնտեյներային գործիքների (CVE-2021-41089, CVE-2021-41091, CVE-2021-41092, CVE-2021-41103) խոցելիությունները, որոնք կապված էին մուտքի իրավունքների սխալ սահմանման հետ, որոնք թույլ էին տալիս արտոնություններ չունեցող օգտատերերին դուրս գալ բազային գրացուցակից և գործարկել արտաքին ծրագրեր։
- Ավելացված է kubelet-ին և pluto-ին IPv6 աջակցություն.
- Տրամադրվել է կոնտեյները վերագործարկելու հնարավորություն՝ դրա կարգավորումները փոխելուց հետո։
- Eni-max-pods փաթեթը թարմացվել է՝ Amazon EC2 M6i օրինակները աջակցելու համար։
- 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
