Недавно было объявлено о запуске новой версии дистрибутива Linux "Бутылочная ракета 1.7.0", разработанный при участии Amazon, для эффективной и безопасной работы изолированных контейнеров.
Для тех, кто плохо знаком с Bottlerocket, вы должны знать, что это дистрибутив, который предоставляет автоматически обновляемый неделимый образ системы, который включает ядро Linux и минимальную системную среду, которая включает только компоненты, необходимые для запуска контейнеров.
О Bottlerocket
Окружающая среда использует системный менеджер systemd, библиотеку Glibc, инструмент сборки Buildroot, загрузчик GRUB, среда выполнения изолированной программной среды контейнера, платформа оркестрации контейнеров Kubernetes, средство проверки подлинности aws-iam и агент Amazon ECS.
Инструменты оркестрации контейнеров поставляются в отдельном контейнере управления, который включен по умолчанию и управляется через агент AWS SSM и API. В базовом образе отсутствуют командная оболочка, 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 ) и защиты от переполнения стека посредством подстановки канареечного тега.
Что нового в Bottlerocket 1.7.0?
В представленной новой версии дистрибутива одним из заметных изменений является то, что при установке пакетов RPM предусмотрено формирование списка программ в формате JSON и смонтируйте его в хост-контейнер как файл /var/lib/bottlerocket/inventory/application.json, чтобы получить информацию о доступных пакетах.
Также в Bottlerocket 1.7.0 есть обновление контейнеров «admin» и «control», а также версии пакетов и зависимости для Go и Rust.
С другой стороны, подчеркивает обновленные версии пакетов со сторонними программами, также исправлены проблемы с конфигурацией tmpfilesd для kmod-5.10-nvidia и при установке связаны версии зависимостей tuftool.
Наконец, для тех, кто Интересно узнать об этом больше об этом дистрибутиве следует знать, что инструментарий и компоненты управления дистрибутивом написаны на Rust и распространяются под лицензиями MIT и Apache 2.0.
BottleRocket поддерживает запуск кластеров Amazon ECS, VMware и AWS EKS Kubernetes, а также создание пользовательских сборок и выпусков, которые позволяют использовать различные оркестровки и инструменты среды выполнения для контейнеров.
Вы можете проверить детали, По следующей ссылке.