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

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

AMD SEV机密容器


本文主要为您介绍如何基于AMD安全加密虚拟化功能SEV(AMD Secure Encrypted Virtualization)技术,通过远程证明启动一个租户的加密容器镜像。


前提条件

1. 安装Anolis 8.6 操作系统

请在支持AMD 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. 使能SEV

注意:在 Anolis 8.6 中,grub 版本默认为1:2.02-123.0.2.an8_6.8。此版本存在BUG,如果直接进行使能sev的操作,会导致机器重启后无法进入系统的情况。请采用降级grub的workround方法。

修改 yum 源,在 Anolis 8.5 中才有低版本的 grub。

cd /etc/yum.repos.d
sed -i 's/$releasever/8.5/' AnolisOS-BaseOS.repo

降级 grub。

um downgrade grub2-efifi

查看 grub 的版本,预期结果如下:

# yum list | grep grub
grub2-common.noarch 1:2.02-106.0.1.an8 @BaseOS
grub2-efifi-x64.x86_64 1:2.02-106.0.1.an8 @BaseOS
grub2-pc.x86_64 1:2.02-106.0.1.an8 @BaseOS
grub2-pc-modules.noarch 1:2.02-106.0.1.an8 @BaseOS
grub2-tools.x86_64 1:2.02-106.0.1.an8 @BaseOS
grub2-tools-efifi.x86_64 1:2.02-106.0.1.an8 @BaseOS
grub2-tools-extra.x86_64 1:2.02-106.0.1.an8 @BaseOS
grub2-tools-minimal.x86_64 1:2.02-106.0.1.an8 @BaseOS

使能SEV和SME

默认情况下SEV和SME没有使能,请输入以下内核命令行进行使能:

grubby --update-kernel=ALL --args="mem_encrypt=on kvm_amd.sev=1"

重启机器。

reboot

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

dmesg | grep -i sev

预期结果如下:

[ 6.747923] ccp 0000:4b:00.1: sev enabled
[ 6.842676] ccp 0000:4b:00.1: SEV fifirmware update successful
[ 6.997400] ccp 0000:4b:00.1: SEV API:1.42 build:42
[ 7.522437] SEV supported: 255 ASIDs

最后检查 SME(Secure Memory Encryption) 的状态。

dmesg | grep -i sme

预期结果如下:

[ 1.863927] AMD Memory Encryption Features active: SME


背景信息

1685085184081.png

AMD SEV Pod 级机密容器架构基于 Kata Containers 项目,最大区别是将基于普通虚拟化技术实现的轻量级 Sandbox Pod替换为基于机密计算技术实现的轻量级 TEE Pod,目的是将特定租户的整个 Pod 以及其中的容器运行在受 CPU TEE 保护的执行环境中。除此之外,TEE Pod 内部还额外集成了 image-rs 和 attestation-agent 等组件,它们负责实现容器镜像的拉取、授权、验签、解密、远程证明以及秘密注入等安全特性。

机密容器的基本运行过程为:

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

• 用户命令 Kubernetes 启动这个受保护的容器镜像。kubelet 会向 containerd 发起创建 Pod 的 CRI 请求,containerd 则把请求转发给 kata-runtime。

• kata runtime 与 Key broker service(simple kbs)建立安全会话,并进行基于CPU TEE 硬件的身份认证与授权。KBS基于安全可信信道发送敏感数据给kata runtime。kata runtime 调用QEMU 将秘密信息注入到guest userland中。之后再调用 QEMU 启动 Pod。

• CPU TEE 执行初始化,最终启动 kata-agent 监听后续请求。

• kubelet 向 containerd 发起 Image Pulling 的 CRI 请求,containerd 则把请求转发给 kata-runtime,最终 kata-agent 收到请求并通过 image-rs 子模块提供的容器镜像管理功能,在 TEE 内安全地执行拉取、验签、解密、unpack 以及挂载容器镜像的操作。




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

相关文章
|
2月前
|
Cloud Native 中间件 调度
云原生信息提取系统:容器化流程与CI/CD集成实践
本文介绍如何通过工程化手段解决数据提取任务中的稳定性与部署难题。结合 Scrapy、Docker、代理中间件与 CI/CD 工具,构建可自动运行、持续迭代的云原生信息提取系统,实现结构化数据采集与标准化交付。
云原生信息提取系统:容器化流程与CI/CD集成实践
|
4月前
|
存储 缓存 分布式计算
StarRocks x Iceberg:云原生湖仓分析技术揭秘与最佳实践
本文将深入探讨基于 StarRocks 和 Iceberg 构建的云原生湖仓分析技术,详细解析两者结合如何实现高效的查询性能优化。内容涵盖 StarRocks Lakehouse 架构、与 Iceberg 的性能协同、最佳实践应用以及未来的发展规划,为您提供全面的技术解读。 作者:杨关锁,北京镜舟科技研发工程师
StarRocks x Iceberg:云原生湖仓分析技术揭秘与最佳实践
|
8月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
针对本地存储和 PVC 这两种容器存储使用方式,我们对 ACK 的容器存储监控功能进行了全新升级。此次更新完善了对集群中不同存储类型的监控能力,不仅对之前已有的监控大盘进行了优化,还针对不同的云存储类型,上线了全新的监控大盘,确保用户能够更好地理解和管理容器业务应用的存储资源。
546 272
|
4月前
|
Kubernetes Cloud Native 区块链
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
120 0
|
7月前
|
Cloud Native Serverless 数据中心
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
ACK One注册集群已正式支持ACS(容器计算服务)算力,为企业的容器化工作负载提供更多选择和更强大的计算能力。
|
7月前
|
Cloud Native Serverless 数据中心
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
213 10
|
7月前
|
人工智能 Prometheus 监控
容器化AI模型的监控与治理:确保模型持续稳定运行
在前几篇文章中,我们探讨了AI模型的容器化部署及构建容器化机器学习流水线。然而,将模型部署到生产环境只是第一步,更重要的是确保其持续稳定运行并保持性能。为此,必须关注容器化AI模型的监控与治理。 监控和治理至关重要,因为AI模型在生产环境中面临数据漂移、概念漂移、模型退化和安全风险等挑战。全面的监控涵盖模型性能、数据质量、解释性、安全性和版本管理等方面。使用Prometheus和Grafana可有效监控性能指标,而遵循模型治理最佳实践(如建立治理框架、定期评估、持续改进和加强安全)则能进一步提升模型的可信度和可靠性。总之,容器化AI模型的监控与治理是确保其长期稳定运行的关键。
|
6月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
139 0
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
|
7月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
113 1
|
7月前
|
PHP Docker 容器
如何在宿主主机运行容器中的php守护进程
在Docker容器中同时运行多个程序(如Nginx+PHP+Ftp)时,需用`docker exec`命令启动额外服务。首先通过`php -v`查看PHP版本,再用`which php-fpm7.4`确认PHP安装路径,通常返回`/usr/sbin/php-fpm7.4`。最后直接运行该路径启动PHP-FPM服务,确保其正常工作。
121 14