Confidential Containers:云原生机密计算基础设施
文/龙蜥社区云原生 SIG
前言部分
技术架构
Pod 级机密容器:该架构基于 Kata Containers 项目,最大区别是将基于普通虚拟化技术实现的轻量级 Sandbox Pod替换为基于机密计算技术实现的轻量级 TEE Pod,目的是将特定租户的整个 Pod 以及其中的容器运行在受 CPU TEE 保护的执行环境中。除此之外,TEE Pod 内部还额外集成了 image-rs 和 attestation-agent 等组件,它们负责实现容器镜像的拉取、授权、验签、解密、远程证明以及秘密注入等安全特性。Pod 级机密容器支持 AMD SEV 以及 Intel TDX 机密虚拟机。
进程级机密容器:该架构基于阿里云、Intel 与蚂蚁合作的 CNCF 项目 Inclavare Containers。租户的容器运行在支持 Intel SGX Enclave 的CPU TEE中。该架构的特别之处在于 Pod 由容器工作负载运行在 LibOS(目前支持蚂蚁 Occlum,将来会支持Intel Gramine)之上,并由 enclave-agent 对容器的生命周期进行管理。除此之外的核心组件 image-rs 和 attestation-agent 组件均与 Pod 级机密容器架构相同。
用户使用标准工具制作一个签名和/或加密的受保护的容器镜像,并上传到容器镜像仓库中。
用户命令 Kubernetes 启动这个受保护的容器镜像。kubelet 会向 containerd 发起创建 Pod 的 CRI 请求,containerd 则把请求转发给 kata-runtime/shim-rune,最终调用 QEMU/Dragonball/rune 创建实际的 Pod。在机密容器中,Pod 被映射为CPU TEE。
CPU TEE 执行初始化,最终启动 kata-agent/enclave-agent 监听后续请求。
kubelet 向 containerd 发起 Image Pulling 的 CRI 请求,containerd 则把请求转发给 kata-runtime/shim-rune,最终 kata-agent/enclave-agent 收到请求并通过 image-rs 子模块提供的容器镜像管理功能,在 TEE 内安全地执行拉取、验签、解密、unpack 以及挂载容器镜像的操作。
如果 TEE 内没有预先在 boot image 中内置验签或解密容器镜像的相关策略文件或密钥,则 image-rs 子模块会请求 attestation-agent 组件通过远程证明协议与远端可信的远程证明服务进行基于CPU TEE 硬件的身份认证与授权,通过attestation-agent 与远程证明服务建立的安全可信信道返回 image-rs 子模块需要的敏感数据。
远程证明服务验证 CPU TEE 硬件认证证据的完整性和真实性。起到比较验证作用的可信参考值由机密计算软件供应链安全基础设施来下发。如果 CPU TEE 通过了身份认证,远程证明服务将授权密钥管理服务(KMS)返回 attestation-agent 请求的敏感数据,比如容器镜像的解密密钥和加密引导过程中用到的磁盘解密密钥。
产品解决方案
Anolis OS
Anolis OS 是龙蜥社区打造的 Linux 开源发行版。基于 Anolis OS,阿里云联合AMD、Intel 等合作伙伴,已经完成 kernel、KVM 等组件对于 CPU TEE 的支持与适配, 后续我们将支持更多的 HW-TEE 平台。
RunD 沙箱容器
云原生 SIG 链接地址:
云原生机密计算SIG链接地址:
机密容器 github 链接地址:
https://github.com/confidential-containers
加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!
关于龙蜥社区
龙蜥社区(OpenAnolis)是由企业单位、事业单位、社会团体、个人等在共建、共治、共享的基础上组成的非营利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开放、平等、协作、创新的 Linux 上游发行版社区及创新平台。
龙蜥社区成立的短期目标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应对方案,构建一个兼容国际 Linux 主流厂商的社区发行版。中长期目标是探索打造一个面向未来的操作系统,建立统一的开源操作系统生态,孵化创新开源项目,繁荣开源生态。目前,Anolis OS 8.6 已发布,更多龙蜥自研特性,支持 X86_64 、RISC-V、Arm64、LoongArch 架构,完善适配 Intel、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密和机密计算支持。欢迎下载:https://openanolis.cn/download加入我们,一起打造面向未来的开源操作系统!https://openanolis.cn4.技术解读:现代化工具链在大规模 C++ 项目中的运用 | 龙蜥技术