亚马逊发布 Bottlerocket 1.0.0,一个基于隔离容器的 Linux 发行版

亚马逊公司 提交 专用 Linux 发行版的第一个重要版本 瓶装火箭1.0.0,旨在高效、安全地运行隔离容器。 该发行版的工具和控制组件是用 Rust 编写的 传播 根据 MIT 和 Apache 2.0 许可证。 该项目正在 GitHub 上开发,可供社区成员参与。 系统部署映像是针对 x86_64 和 Aarch64 架构生成的。 该操作系统适合在 Amazon ECS 和 AWS EKS Kubernetes 集群上运行。 均提供 用于创建您自己的程序集和版本的工具,可以使用其他编排工具、内核和容器运行时。

该发行版提供了Linux内核和最小的系统环境,仅包括运行容器所需的组件。 该项目涉及的软件包包括系统管理器systemd、Glibc库和组装工具
Buildroot、GRUB 引导加载程序、网络配置器 邪恶,隔离容器的运行时 装箱的、Kubernetes 容器编排平台、aws-iam-authenticator 和 Amazon ECS 代理。

发行版以原子方式更新,并以不可分割的系统映像的形式交付。 为系统分配两个磁盘分区,其中一个包含活动系统,更新复制到第二个。 部署更新后,第二个分区将变为活动状态,第一个分区将保存系统的先前版本,直到下一个更新到达为止,如果出现问题,您可以回滚到该版本。 更新会自动安装,无需管理员干预。

与 Fedora CoreOS、CentOS/Red Hat Atomic Host 等类似发行版的主要区别在于主要侧重于提供 最大安全性 在加强系统保护以免受可能的威胁的背景下,使利用操作系统组件中的漏洞变得更加困难并增加容器的隔离。 容器是使用标准 Linux 内核机制创建的 - cgroup、命名空间和 seccomp。 为了实现额外的隔离,该发行版在“强制”模式下使用 SELinux,该模块用于对根分区的完整性进行加密验证 DM-真实性。 如果检测到尝试在块设备级别修改数据,系统将重新启动。

根分区以只读方式挂载,/etc 设置分区挂载在 tmpfs 中,重启后恢复到原始状态。 不支持直接修改 /etc 目录中的文件,例如 /etc/resolv.conf 和 /etc/containerd/config.toml - 要永久保存设置,您必须使用 API 或将功能移至单独的容器中。

大多数系统组件都是用 Rust 编写的,它提供内存安全功能,以避免由于释放后内存访问、空指针取消引用和缓冲区溢出而导致的漏洞。 默认构建时,“--enable-default-pie”和“--enable-default-ssp”编译模式用于启用可执行文件地址空间的随机化(馅饼)和通过金丝雀替换进行堆栈溢出保护。
对于用 C/C++ 编写的包,包含附加标志
“-Wall”、“-Werror=format-security”、“-Wp,-D_FORTIFY_SOURCE=2”、“-Wp,-D_GLIBCXX_ASSERTIONS”和“-fstack-clash-protection”。

容器编排工具单独提供 控制容器,默认情况下启用并通过控制 API 和 AWS SSM 代理。 基础镜像缺少命令 shell、SSH 服务器和解释语言(例如,没有 Python 或 Perl)——管理工具和调试工具位于 单独的服务容器,默认情况下禁用。

来源: opennet.ru

添加评论