Bottlerocket 1.2 шығарылымы, оқшауланған контейнерлерге негізделген тарату

Оқшауланған контейнерлерді тиімді және қауіпсіз іске қосу үшін Amazon компаниясының қатысуымен әзірленген Linux дистрибутивінің Bottlerocket 1.2.0 шығарылымы қол жетімді. Тарату құралдары мен басқару құрамдастары Rust тілінде жазылған және MIT және Apache 2.0 лицензиялары бойынша таратылады. Ол Amazon ECS, VMware және AWS EKS Kubernetes кластерлерінде Bottlerocket іске қосуды қолдайды, сондай-ақ контейнерлер үшін әртүрлі оркестрлеу және орындау уақыты құралдарын пайдалануға мүмкіндік беретін реттелетін құрастырулар мен басылымдарды жасайды.

Бөлу Linux ядросын және контейнерлерді іске қосу үшін қажетті құрамдастарды ғана қамтитын ең аз жүйелік ортаны қамтитын атомдық және автоматты түрде жаңартылған бөлінбейтін жүйелік кескінді қамтамасыз етеді. Қоршаған ортаға жүйелік жүйе менеджері, Glibc кітапханасы, Buildroot құрастыру құралы, GRUB жүктеушісі, зиянды желі конфигураторы, контейнерден оқшауланған контейнердің жұмыс уақыты, Kubernetes контейнерін басқару платформасы, aws-iam-аутентификатор және Amazon ECS агенті кіреді. .

Контейнерді басқару құралдары әдепкі бойынша қосылған және API және AWS SSM агенті арқылы басқарылатын бөлек басқару контейнерінде келеді. Негізгі кескінде пәрмен қабығы, SSH сервері және түсіндірілетін тілдер жоқ (мысалы, Python немесе Perl жоқ) - әкімшілік және жөндеу құралдары әдепкі бойынша өшірілген бөлек қызмет көрсету контейнеріне жылжытылады.

Fedora CoreOS, CentOS/Red Hat Atomic Host сияқты ұқсас дистрибутивтерден негізгі айырмашылығы ықтимал қауіптерден жүйені қорғауды күшейту, ОЖ құрамдас бөліктеріндегі осалдықтарды пайдалануды қиындату және контейнерлік оқшаулауды арттыру контекстінде максималды қауіпсіздікті қамтамасыз етуге басты назар аудару болып табылады. Контейнерлер Linux ядросының кәдімгі механизмдері – cgroups, аттар кеңістігі және seccomp көмегімен жасалады. Қосымша оқшаулау үшін дистрибутив SELinux қолданбасын «мәжбүрлеу» режимінде пайдаланады.

Түбірлік бөлім тек оқуға арналған режимде орнатылады, ал /etc параметрлері бар бөлім tmpfs файлында орнатылады және қайта іске қосқаннан кейін бастапқы күйіне қалпына келтіріледі. /etc/resolv.conf және /etc/containerd/config.toml сияқты /etc каталогындағы файлдарды тікелей өзгертуге қолдау көрсетілмейді – параметрлерді біржола сақтау үшін 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" жалаулары қосымша болып табылады. қамтылған - қорғау.

Жаңа шығарылымда:

  • Контейнер кескіндерінің тізілімінің айналарына қолдау қосылды.
  • Өздігінен қол қойылған сертификаттарды пайдалану мүмкіндігі қосылды.
  • Хост атын конфигурациялау опциясы қосылды.
  • Әкімшілік контейнердің әдепкі нұсқасы жаңартылды.
  • TopologyManagerPolicy және kubelet үшін topologyManagerScope параметрлері қосылды.
  • Zstd алгоритмі арқылы ядроны қысуға қолдау қосылды.
  • Виртуалды машиналарды VMware бағдарламасына OVA (Open Virtualization Format) пішімінде жүктеу мүмкіндігі қамтамасыз етілген.
  • aws-k8s-1.21 тарату нұсқасы Kubernetes 1.21 қолдауымен жаңартылды. aws-k8s-1.16 қолдауы тоқтатылды.
  • Rust тіліне арналған жаңартылған бума нұсқалары мен тәуелділіктер.

Ақпарат көзі: opennet.ru

пікір қалдыру