Выпуск Bottlerocket 1.1, дыстрыбутыва на базе ізаляваных кантэйнераў

Даступны выпуск Linux-дыстрыбутыва Bottlerocket 1.1.0, які развіваецца пры ўдзеле кампаніі Amazon для эфектыўнага і бяспечнага запуску ізаляваных кантэйнераў. Інструментарый і кіравальныя кампаненты дыстрыбутыва напісаны на мове Rust і распаўсюджваюцца пад ліцэнзіямі MIT і Apache 2.0. Падтрымліваецца запуск Bottlerocket у кластарах Amazon ECS і AWS EKS Kubernetes, а таксама стварэнне адвольных зборак і рэдакцый, якія дапускаюць ужыванне розных прылад аркестроўкі і runtime для кантэйнераў.

Дыстрыбутыў падае атамарна і аўтаматычна які абнаўляецца непадзельная сістэмная выява, улучальны ядро ​​Linux і мінімальнае сістэмнае асяроддзе, улучальныя толькі кампаненты, неабходныя для запуску кантэйнераў. У асяроддзі задзейнічаны сістэмны мэнэджар systemd, бібліятэка Glibc, зборачны інструментар Buildroot, загрузнік GRUB, канфігуратар сеткі wicked, runtime для ізаляваных кантэйнераў containerd, платформа аркестроўкі кантэйнераў Kubernetes, аўтэнтыфікатар aws-iam-authenticator і агент Amazon.

Інструменты для аркестроўкі кантэйнераў пастаўляюцца ў асобным кіраўніку кантэйнера, які ўключаецца па змаўчанні і кіруецца праз API і AWS SSM Agent. У базавай выяве адсутнічае камандная абалонка, сервер SSH і інтэрпрэтаваныя мовы (напрыклад, няма Python ці Perl) — сродкі для адміністратара і адладкавыя прылады вынесеныя ў асобны службовы кантэйнер, які па змаўчанні адключаны.

Ключавым адрозненнем ад падобных дыстрыбутываў, такіх як Fedora CoreOS, CentOS/Red Hat Atomic Host з'яўляецца першасная арыентацыя на падаванне максімальнай бяспекі ў кантэксце ўзмацнення абароны сістэмы ад магчымых пагроз, ускладненні эксплуатацыі ўразлівасцяў у кампанентах АС і падвышэнні ізаляцыі кантэйнераў. Кантэйнеры ствараюцца пры дапамозе штатных механізмаў ядра Linux - cgroups, прастор імёнаў і seccomp. Для дадатковай ізаляцыі ў дыстрыбутыве ўжываецца SELinux у рэжыме "enforcing".

Каранёвая частка мантуецца ў рэжыме толькі для чытання, а частка з наладамі /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 -protection».

У новым выпуску:

  • Прапанавана два новыя варыянты дыстрыбутыва aws-k8s-1.20 і vmware-k8s-1.20 c падтрымкай Kubernetes 1.20. У дадзеных варыянтах, а таксама ў абноўленым варыянце aws-ecs-1, задзейнічаны новы выпуск ядра Linux 5.10. Рэжым lockdown па змаўчанні пераведзены ў значэнне «integrity» (блакуюцца магчымасці, якія дазваляюць уносіць змены ў працавальнае ядро ​​з прасторы карыстача). Спынена падтрымка варыянту aws-k8s-1.15 на базе Kubernetes 1.15.
  • Для Amazon ECS рэалізавана падтрымка сеткавага рэжыму awsvpc, які дазваляе вылучаць асобныя сеткавых інтэрфейсы і ўнутраныя IP-адрасы для кожнай задачы.
  • Дададзеныя налады для кіравання рознымі параметрамі Kubernetes, уключаючы QPS, ліміты на пулы і магчымасць падлучэння да хмарных правайдэраў, выдатным ад AWS.
  • У bootstrap-кантэйнеры забяспечана абмежаванне доступу да дадзеных карыстача пры дапамозе SELinux.
  • Дададзена ўтыліта resize2fs.

Крыніца: opennet.ru

Дадаць каментар