Lansarea Bottlerocket 1.1, o distribuție bazată pe containere izolate

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

Distribuția oferă o imagine de sistem indivizibilă actualizată atomic și automat, care include nucleul Linux și un mediu de sistem minim, incluzând doar componentele necesare rulării containerelor. Mediul include managerul de sistem systemd, biblioteca Glibc, instrumentul de compilare Buildroot, încărcătorul de pornire GRUB, configuratorul de rețea rău, timpul de rulare containerd pentru containere izolate, platforma de orchestrare a containerelor Kubernetes, aws-iam-authenticator și Amazon. agent ECS.

Instrumentele de orchestrare a containerelor vin într-un container de gestionare separat, care este activat implicit și gestionat prin API și AWS SSM Agent. Imaginea de bază nu are un shell de comandă, un server SSH și limbi interpretate (de exemplu, fără Python sau Perl) - instrumentele administrative și instrumentele de depanare sunt plasate într-un container de servicii separat, care este dezactivat implicit.

Diferența esențială față de distribuțiile similare, cum ar fi Fedora CoreOS, CentOS/Red Hat Atomic Host, este concentrarea principală pe asigurarea securității maxime în contextul consolidării protecției sistemului împotriva posibilelor amenințări, ceea ce face mai dificilă exploatarea vulnerabilităților componentelor sistemului de operare și creșterea izolării containerelor. . Containerele sunt create folosind mecanisme standard ale nucleului Linux - cgroups, namespaces și seccomp. Pentru o izolare suplimentară, distribuția folosește SELinux în modul „aplicare”.

Partiția rădăcină este montată numai în citire, iar partiția de setări /etc este montată în tmpfs și restaurată la starea inițială după o repornire. Modificarea directă a fișierelor din directorul /etc, cum ar fi /etc/resolv.conf și /etc/containerd/config.toml, nu este acceptată - pentru a salva permanent setările, trebuie să utilizați API-ul sau să mutați funcționalitatea în containere separate. Modulul dm-verity este utilizat pentru a verifica criptografic integritatea partiției rădăcină și, dacă este detectată o încercare de modificare a datelor la nivel de dispozitiv bloc, sistemul repornește.

Cele mai multe componente ale sistemului sunt scrise în Rust, care oferă funcții de siguranță pentru memorie pentru a evita vulnerabilitățile cauzate de accesările la memorie după eliberarea, dereferințele pointerului nul și depășirile de buffer. Când se construiește în mod implicit, modurile de compilare „-enable-default-pie” și „-enable-default-ssp” sunt folosite pentru a permite randomizarea spațiului de adresă a fișierelor executabile (PIE) și protecția împotriva depășirilor de stive prin înlocuirea canary. Pentru pachetele scrise în C/C++, steagurile „-Wall”, „-Werror=format-security”, „-Wp,-D_FORTIFY_SOURCE=2”, „-Wp,-D_GLIBCXX_ASSERTIONS” și „-fstack-clash” sunt în plus activat -protecție".

În noua versiune:

  • Предложено два новых варианта дистрибутива 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.

Sursa: opennet.ru

Adauga un comentariu