亚马逊公司 第一个重要的专业问题 Linux-分配 ,旨在高效、安全地运行隔离容器。 该发行版的工具和控制组件是用 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红帽原子主机主要专注于提供 为了加强系统对潜在威胁的防护,增加操作系统组件漏洞被利用的难度,并提高容器隔离度,容器是使用标准内核机制创建的。 Linux — cgroups、命名空间和 seccomp。为了进一步隔离,该发行版使用了 SE。Linux 在“强制”模式下,该模块用于对根分区的完整性进行加密验证 。 如果检测到尝试在块设备级别修改数据,系统将重新启动。
根分区以只读方式挂载,/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”。
容器编排工具单独提供 ,默认情况下启用并通过控制 和 AWS SSM 代理。 基础镜像缺少命令 shell、SSH 服务器和解释语言(例如,没有 Python 或 Perl)——管理工具和调试工具位于 ,默认情况下禁用。
来源: opennet.ru
