Note
Azure 容器 Linux(ACL)将取代带有 OS Guard(预览版)的 Azure Linux,成为 Azure Kubernetes Service(AKS)的长期、不可变且针对容器优化的 Linux 操作系统(OS)。 它提供了一个安全、最少且可操作一致的主机 OS,旨在大规模运行容器化工作负荷。 有关详细信息,请参阅 Azure 容器 Linux (ACL) 概述。
本文概述了 Azure Linux 与 OS Guard,这是 Azure Linux 的强化、不可变变体。 它为 AKS 上的容器主机提供强大的运行时完整性、防篡改性和企业级安全性。 OS Guard 基于 Azure Linux 添加了内核和运行时功能,这些功能强制实施代码完整性,保护根文件系统免受未经授权的更改,并应用强制访问控制。 如果需要提升容器主机和工作负荷运行时的保证,请使用 OS Guard。
主要功能
下表概述了具有 OS Guard 的 Azure Linux 的主要功能:
| 特性 | Description | 备注 |
|---|---|---|
| 不可变性 | /usr 目录作为受 dm-verity 保护的只读卷装载。 在运行时,内核会验证已签名的根哈希,以检测和阻止篡改。 | N/A |
| 代码完整性 | OS Guard 集成了 完整性策略强制(IPE)Linux 安全模块 ,以确保只允许来自受信任签名卷的二进制文件执行。 这有助于防止篡改或不受信任的代码执行,包括在容器映像中。 | IPE 在预览期间以 审核 模式运行。 |
| 强制访问控制 | OS Guard 集成 SELinux,以限制哪些进程可以访问系统中的敏感资源。 | SELinux 在预览期间以 宽松 模式运行。 |
| 测量启动和可信启动 | OS Guard 支持可信启动,并与 受信任的启动 集成,以提供虚拟 TPM(vTPM)中存储的启动组件的加密测量。 这是通过使用统一内核映像(UKI)实现的,该映像将内核、initramfs 和内核命令行捆绑成一个已签名的单个工件。 启动时,vTPM 会测量和记录 UKI,以确保在最早阶段的完整性。 | N/A |
| 已验证的容器层 | 容器映像和层使用已签名的 dm-verity 哈希进行验证。 这可确保在运行时仅使用经过验证的层,从而降低容器逃逸或被篡改的风险。 IPE 功能扩展到容器映像,确保只有与信任签名匹配的二进制文件才能被执行,即使它们存在于已验证的层中也是如此。 | IPE 在预览期间以 审核 模式运行。 |
| 主权供应链安全 | OS Guard 继承 Azure Linux 的安全生成管道、签名的统一内核映像(UKIs)和软件材料清单(SBOM)。 | N/A |
主要优势
下表概述了将 Azure Linux 与 OS Guard 配合使用的主要优势:
| Benefit | Description |
|---|---|
| 强大的运行时完整性保证 | 内核强制执行的不可变性和 IPE 可防止执行被篡改或不受信任的代码。 |
| 减少攻击面 | 只读 /usr 目录、减少的包计数和 SELinux 策略限制了攻击者安装持久后门或更改系统二进制文件的机会。 |
| 供应链信任 | 基于 Azure Linux 的签名映像和供应链流程构建,明确溯源系统组件的来源。 |
| 与 Azure 安全功能集成 | 受信任启动和安全启动的本机支持能够提供测量的启动保护和证明。 |
| 开源透明度 | 许多基础技术(dm-verity、SELinux、IPE)都是上游或开源技术,Microsoft具有支持这些功能的工具和贡献。 |
| 合规性继承 | OS Guard 从 Azure Linux 继承符合性属性(例如,适用于 Azure Linux 的加密模块和认证),从而更轻松地在受管制环境中采用。 |
注意事项和限制
将 Azure Linux 与 AKS 的 OS Guard 配合使用时,请记住以下注意事项和限制:
- 使用 OS Guard 的 Azure Linux 需要 Kubernetes 版本 1.32.0 或更高版本。
- 所有具有 OS Guard 映像的 Azure Linux 都启用了 联邦信息进程标准(FIPS) 和 受信任的启动 。
- 在 AKS 上的 Azure Linux,只有 Azure CLI 和 ARM 模板这两种部署方法受支持,并且 OS Guard 目前处于预览状态。 不支持 PowerShell 和 Terraform。
- 在 AKS 上提供的带有 OS Guard 的 Azure Linux 预览版不支持 Arm64 映像。
-
NodeImage和None是唯一受支持的操作系统(OS)升级通道,适用于在 AKS 上使用 OS Guard 的 Azure Linux。Unmanaged和SecurityPatch与带有 OS Guard 的 Azure Linux 不兼容,因为 /usr 目录是不可变的。 - 不支持工件流式传输。
- 不支持 Pod Sandboxing。
- 不支持机密虚拟机(CVM)。
- 不支持第 1 代虚拟机(VM)。
如何选择 Azure Linux 容器主机选项
使用 OS Guard 的 Azure Linux 基于 Azure Linux 构建,受益于相同的供应链保护和签名映像。 这两种 OS 变体都可以根据您的安全性、合规性和操作要求来选择适用:
| 容器主机选项 | Azure Linux 容器主机 | 使用 OS Guard 的 Azure Linux |
|---|---|---|
| 安全优势 | Azure Linux 提供 Microsoft 认为对 AKS 工作负荷至关重要的安全优势。 | Azure Linux 的所有优势以及上述额外安全优势。 |
| 用户熟悉性 | 来自其他 Linux 分发版(如 Ubuntu)的客户熟悉操作和工具。 | 对来自其他容器优化发行版的客户来说很熟悉。 |
| 目标读者 | 面向进行原样迁移和其他迁移的客户,以及从其他 Linux 发行版迁移而来的客户。 | 面向出生在云中的云原生客户或希望实现现代化。 |
| 安全控制 | 如有必要,可为重视安全的客户启用 AppArmor 的选项。 | 默认情况下,SELinux 和 IPE 等安全开关是许可的。 |
相关内容
有关适用于 AKS Azure Linux OS Guard 的详细信息,请参阅以下资源: