最近 发布宣布 新版本的 Linux 发行版 “壁虎1.7.0”,在亚马逊的参与下开发,用于高效、安全地运行隔离容器。
对于那些刚接触 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、命名空间和 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 的包版本和依赖项。
另一方面,亮点 带有第三方程序的更新版本的软件包, 还修复了 kmod-5.10-nvidia 的 tmpfilesd 配置问题,并且在安装 tuftool 依赖项版本时已链接。
最后对于那些 有兴趣了解更多关于它的信息 关于这个发行版,你应该知道工具包和发行版控制组件是用 Rust 编写的,并且在 MIT 和 Apache 2.0 许可下分发。
瓶装火箭 支持运行 Amazon ECS、VMware 和 AWS EKS Kubernetes 集群, 以及创建自定义构建和版本,为容器启用不同的编排和运行时工具。
您可以查看详细信息, 在下面的链接中。