带你读《云原生机密计算最佳实践白皮书》——Intel TDX机密容器(1)

简介: 带你读《云原生机密计算最佳实践白皮书》——Intel TDX机密容器(1)

Intel TDX机密容器


本文主要为您介绍如何基于Intel信任域(TD)的硬件隔离虚拟化功能TDX(Intel Trust Domain Extensions)(https://www.intel.com/content/www/us/en/developer/articles/technical/intel-trust-domain-extensions.html)技术,通过远程证明启动一个租户的加密签名容器镜像。


前提条件

1. 安装Anolis 8.6 操作系统

请在支持INTEL TDX CPU的硬件设备上,参考Anolis 8.6 GA说明文档安装anolis 8.6 GA。

2. 升级内核到5.10

由于 Anlois 8.6 的默认内核版本是4.19,请升级kernel 到5.10版本。

• 添加 yum 源配置参数,添加Anolis 的 Experimental repo。

yum install yum-utils
yum-confifig-manager --add-repo https://mirrors.openanolis.cn/anolis/8/kernel-5.10/x86_64
/os/

• 升级内核

yum update kernel

• 重启机器,并重新查看机器的操作系统发行编号。

reboot
uname -r

• 预期结果如下:

5.10.134-13_rc2.an8.x86_64

3. 使能TDX

• 重启后,请检查机器的tdx使能状态。

• 预期结果如下

[ 1.481148] seam: Loading TDX P-SEAMLDR intel-seam/np-seamldr.acm.
[ 1.482177] seam: Successfully loaded TDX P-SEAMLDR.
[ 1.482195] tdx: Build all system memory blocks as TDX memory.
[ 5.919528] tdx: Loaded TDX module via P-SEAMLDR.
[ 5.919763] tdx: TDX SEAM module: attributes 0x0 vendor_id 0x8086 build_date 20220420 
build_num 0x156 minor_version 0x0 major_version 0x1.
[ 6.379342] tdx: Successfully initialized TDX module


背景信息

image.png

英特尔 TDX Pod 级机密容是将TDX硬件安全虚拟化技术同容器生态无缝集成,以云原生方式运行,保护敏感工作负载和数据的机密性和完整性。是目前机密容器社区(https://github.com/confifidential-containers)主要支持的底层硬件之一。相对于传统基于虚拟机的容器技术,机密容器做了很多安全的增强,比如trusted boot, restricted API, encrypted/signed image, remote attestation,这些技术都集成为机密容器runtime stack的一部分。在TEE保护的guest 内部,默认集成了 image-rs 和 attestation-agent 等组件,它们负责实现容器镜像的拉取、授权、验签、解密、远程证明以及秘密注入等安全特性。机密容器的基本运行过程为:

• 用户使用标准工具制作一个签名和/或加密的受保护的容器镜像,并上传到容器镜像仓库中。

• 用户命令 Kubernetes 启动这个受保护的容器镜像。kubelet 会向 containerd 发起创建 Pod 的 CRI 请求,containerd 则把请求转发给 kata-runtime,kata-runtime 启动一个TDX 保护的轻量级VM, 目前支持TDX 的VMM 有Dragonball,Cloud Hypervisor, Qemu。

kubelet 向 containerd 发起 Image Pulling 的 CRI 请求,containerd 则把请求转发给 kata-runtime,最终 kata-agent 收到请求并通过 image-rs 子模块提供的容器镜像管理功能,在下载image之前,image-rs会跟attestation-agent进行远程认证。

Attestation-agent 与 Key broker service(verdictd)建立安全会话,并进行基于runtime stack启动过程中的度量值进行远程认证,确保runtime没有被篡改。只有通过远程认证,image解密key,签名的policy和证书才会传送到TEE保护的guest内部。

• 通过远程证明后,拿到image policy文件,签名证书,解密image key,image-rs进行验签、解密、unpack 以及挂载容器镜像的操作,最终顺利启动container。





《云原生机密计算最佳实践白皮书》——06运行时底座——Intel TDX机密容器(2) https://developer.aliyun.com/article/1231170?groupCode=aliyun_linux

相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
1月前
|
Kubernetes 监控 开发者
掌握容器化:Docker与Kubernetes的最佳实践
【10月更文挑战第26天】本文深入探讨了Docker和Kubernetes的最佳实践,涵盖Dockerfile优化、数据卷管理、网络配置、Pod设计、服务发现与负载均衡、声明式更新等内容。同时介绍了容器化现有应用、自动化部署、监控与日志等开发技巧,以及Docker Compose和Helm等实用工具。旨在帮助开发者提高开发效率和系统稳定性,构建现代、高效、可扩展的应用。
|
21天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
21天前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
30 5
|
21天前
|
开发框架 安全 开发者
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。本文探讨了 Docker 在多平台应用构建与部署中的作用,包括环境一致性、依赖管理、快速构建等优势,以及部署流程和注意事项,展示了 Docker 如何简化开发与部署过程,提高效率和可移植性。
49 4
|
2月前
|
Kubernetes 监控 Cloud Native
|
2月前
|
缓存 监控 测试技术
掌握容器化持续集成/持续部署(CI/CD)的最佳实践
【10月更文挑战第8天】本文介绍了容器化持续集成/持续部署(CI/CD)的最佳实践,涵盖容器化CI/CD的概念、优势和实施步骤。通过使用容器技术,可以实现环境一致性、快速迭代和易于扩展,提高软件开发的效率和可靠性。文章还详细讨论了编写高效的Dockerfile、自动化测试、安全性、监控和日志管理等方面的最佳实践。
|
2月前
|
安全 Docker 容器
Docker中运行容器时Operation not permitted报错问题解决
【10月更文挑战第2天】Docker中运行容器时Operation not permitted报错问题解决
609 3
|
2月前
|
应用服务中间件 Shell nginx
Docker容器运行
Docker容器运行
33 0
|
4月前
|
JSON JavaScript 开发者
Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
【8月更文挑战第7天】Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
|
3月前
|
Shell Docker 容器
10-19|使用date命令: 你可以在容器内使用date命令来设置时间,但为了防止这个更改影响宿主机,你不能以特权模式运行容器。我没有加特权模式的时候,使用此命令告诉我没权限啊
10-19|使用date命令: 你可以在容器内使用date命令来设置时间,但为了防止这个更改影响宿主机,你不能以特权模式运行容器。我没有加特权模式的时候,使用此命令告诉我没权限啊

热门文章

最新文章