AMD SEV机密虚拟机
项目位置链接
AMD SEV 技术基于AMD EPYC CPU,将物理机密计算能力传导至虚拟机实例,在公有云上打造一个立体化可信加密环境。 SEV可保证单个虚拟机实例使用独立的硬件密钥对内存加密,同时提供高性能支持。密钥由AMD 平台安全处理器 (PSP)在实例创建期间生成,而且仅位于处理器中,云厂商无法访问这些密钥。
测试环境
硬件配置
CPU: AMD EPYC 7763 *1
Memory: DDR4 3200 32G *16
软件信息
OS: Anolis 8.5.0-10.0.1
Kernel: 5.10.134-12.1.an8.x86_64
第一步 开启 SME和 SEV
开启 SME
将 mem_encrypt=on 添加到kernel的引导参数
Enable SEV
将 kvm_amd.sev=1 kvm.添加到kernel的引导参数中
确保Kernel的引导参数生效
1、vim /etc/default/grub
2、增加 "kvm_amd.sev=1 mem_encrypt=on" 到 "GRUB_CMDLINE_LINUX_DEFAULT=" 这一行
3、grub2-mkconfifig -o /boot/efifi/EFI/anolis/grub.cfg
第二步 重启服务器进入BIOS开启SEV相关选项
BIOS 配置项如下
1、Advanced->AMD CBS->CPU Common Options->SMEE->Enable
2、Advanced->AMD CBS->NBIO Common Options->IOMMU->Enabled
3、Advanced->AMD CBS->NBIO Common Options->SEV-SNP Support->Enable
Anolis OS 对SEV的配置进行确认
1、cat /proc/cmdline
确保输出有"mem_encrypt=on kvm_amd.sev=1"
类似输出如下
BOOT_IMAGE=(hd1,gpt2)/vmlinuz-5.10.134-12.1.an8.x86_64 root=/dev/mapper/ao-root ro crashkernel=auto resume=/dev/mapper/ao-swap rd.lvm.lv=ao/root rd.lvm.lv=ao/swap rhgb quiet mem_encrypt=on kvm_amd.sev=1 kvm_amd.sev_es=1
2、dmesg | grep -i SEV
确保输出有 "SEV supported"
类似输出如下
[ 5.145496] ccp 0000:47:00.1: sev enabled [ 5.234221] ccp 0000:47:00.1: SEV API:1.49 build:6 [ 5.445958] SEV supported: 253 ASIDs
3、cat /sys/module/kvm_amd/parameters/sev
确保输出值是 "1" 或者 "Y"
《云原生机密计算最佳实践白皮书》——06运行时底座——AMD SEV机密虚拟机(2) https://developer.aliyun.com/article/1230949?groupCode=aliyun_linux