带你读《云原生机密计算最佳实践白皮书》——Intel SGX虚拟机最佳实践(5)

简介: 带你读《云原生机密计算最佳实践白皮书》——Intel SGX虚拟机最佳实践(5)

《云原生机密计算最佳实践白皮书》——06运行时底座——Intel vSGX:Intel SGX虚拟化——Intel SGX虚拟机最佳实践(4) https://developer.aliyun.com/article/1231118?groupCode=aliyun_linux




创建 SGX Guest xml 文件

以下是 SGX 虚拟机的参考 xml 文件 vsgx.xml, 在使用过程中,请根据实际需求,修改对应的配置字段。

说明:假设 guest image 的位置为/root/vsgx/AnolisOS-8.6-x86_64-ANCK.qcow2, 使用名为default

的 NAT 网络

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
 <name>vsgx</name>
 <memory unit='KiB'>16777216</memory>
 <currentMemory unit='KiB'>16777216</currentMemory>
 <vcpu placement='static'>8</vcpu>
 <os>
 <type arch='x86_64'>hvm</type>
 <boot dev='hd'/>
 </os>
 <features>
 <acpi/>
 <apic/>
 <pae/>
 </features>
 <clock offffset='localtime'/>
 <on_poweroffff>destroy</on_poweroffff>
 <on_reboot>restart</on_reboot>
 <on_crash>restart</on_crash>
 <pm>
 <suspend-to-mem enabled='no'/>
 <suspend-to-disk enabled='no'/>
 </pm>
 <qemu:commandline>
 <qemu:arg value='-cpu'/>
 <qemu:arg value='host,+sgx-provisionkey'/>
 <qemu:arg value='-object'/>
 <qemu:arg value='memory-backend-epc,id=mem1,size=64M,prealloc=on'/>
 <qemu:arg value='-M'/>
 <qemu:arg value='sgx-epc.0.memdev=mem1,sgx-epc.0.node=0'/>
 </qemu:commandline>
 <devices>
 <emulator>/usr/libexec/qemu-kvm</emulator>
 <disk type='fifile' device='disk'>
 <driver name='qemu' type='qcow2'/>
 <source fifile='/root/vsgx/AnolisOS-8.6-x86_64-ANCK.qcow2'/>
 <target dev='vda' bus='virtio'/>
 <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
 </disk>
 <controller type='ide' index='0'>
 <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
 </controller>
 <memballoon model='virtio'>
 <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
 </memballoon>
 <console type='pty'>
 <target type='serial' port='0'/>
 </console>
 <interface type='network'>
 <source network='default'/>
 <model type='virtio'/>
 <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
 </interface>
 </devices>
<feature>
 <sgx supported='yes'>
 <flflc>yes</flflc>
 <epc_size unit='KiB'>1048576</epc_size>
 </sgx>
</feature>
</domain>

启动虚拟机

# virsh create vsgx.xml
Domain 'vsgx' created from vsgx.xml

成功启动虚拟机之后,请输入一下命令列出虚拟机实例。

# virsh list
 Id 名称 状态
----------------------
 1 vsgx running

进入虚拟机控制台

# virsh console vsgx
Connected to domain 'vsgx'
Escape character is ^] (Ctrl + ])
# 这里要敲一下回车键
Anolis OS 8.6
Kernel 4.19.91-26.an8.x86_64 on an x86_64
Activate the web console with: systemctl enable --now cockpit.socket
localhost login:

请输入步骤二设置的用户名和密码,进入SGX guest。

localhost login: root
Password: 123456

检查 Guest 的 SGX 使能状态

不管是用 QEMU 命令行直接启动的 SGX Guest,还是使用 virsh 启动的 SGX Guest,在启动之后,都需要检查 Guest 中对 SGX 是否支持。

在 Guest 中使用 SGX 需要支持 SGX 的内核/操作系统。可以通过以下方式在 Guest 中确定支持:

检查 SGX 使能状态。

dmesg | grep -i sgx

以下输出表示 SGX 已经被正确使能。

[ 0.489460] sgx: EPC section 0x440000000-0x443ffffffffffff

检查 SGX 驱动安装情况。

ls /dev/sgx_*

以下输出表示 SGX 已经被正确使能。

/dev/sgx_enclave /dev/sgx_provision


步骤四:构建 SGX 加密计算环境

为开发 SGX 程序,您需要在 SGX 虚拟机上安装 SGX SDK,PSW 和 DCAP 进而构建 SGX 加密计算环境。

安装 SGX SDK

mkdir -p $HOME/vsgx && \
 wget https://mirrors.openanolis.cn/inclavare-containers/bin/anolis8.6/sgx-2.17/sgx_linux_
 x64_sdk_2.17.100.3.bin && \
 chmod +x sgx_linux_x64_sdk_2.17.100.3.bin && \
echo -e 'n\n\/opt/intel\n' | ./sgx_linux_x64_sdk_*.bin && \
 rm -rf sgx_linux_x64_sdk_*.bin

安装 SGX PSW/DCAP

cd $HOME/vsgx && \
 wget https://mirrors.openanolis.cn/inclavare-containers/bin/anolis8.6/sgx-2.17/sgx_rpm
 _local_repo.tar.gz && \
 tar zxvf sgx_rpm_local_repo.tar.gz && \
 yum install -y yum-utils && \
 yum-confifig-manager --add-repo fifile://$HOME/vsgx/sgx_rpm_local_repo/ && \
 yum install --nogpgcheck -y sgx-aesm-service libsgx-launch libsgx-urts && \
 rm -rf sgx_rpm_local_repo.tar.gz



《云原生机密计算最佳实践白皮书》——06运行时底座——Intel vSGX:Intel SGX虚拟化——Intel SGX虚拟机最佳实践(6) https://developer.aliyun.com/article/1231116?groupCode=aliyun_linux

相关文章
|
29天前
|
存储 弹性计算 Cloud Native
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
|
1月前
|
存储 SQL 数据库
虚拟化数据恢复—ESXI虚拟机误还原快照的数据恢复案例
虚拟化技术原理是将硬件虚拟化给不同的虚拟机使用,利用虚拟化技术可以在一台物理机上安装多台虚拟机。误操作或者物理机器出现故障都会导致虚拟机不可用,虚拟机中的数据丢失。 虚拟化数据恢复环境: 有一台虚拟机是由物理机迁移到ESXI上面的,迁移完成后为该虚拟机做了一个快照。虚拟机上运行了一个SQL Server数据库,记录了5年左右的数据。 该ESXI上共有二十几台虚拟机,EXSI连接一台某品牌EVA存储,所有的虚拟机(包括故障虚拟机)都存放在该EVA存储上。
|
1月前
|
存储 Cloud Native 对象存储
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
AutoMQ[1] 是新一代基于共享存储架构实现的云原生 Kafka。得益于其存算分离的共享存储架构,通过和阿里云合作,深度使用阿里云可靠、先进的云服务如对象存储OSS、块存储 ESSD、弹性伸缩ESS以及抢占式实例实现了相比 Apache Kafka 10倍的成本优势并且提供了自动弹性的能力。
83849 18
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
|
1月前
|
程序员 Linux KVM
【qemu虚拟化】将img镜像文件转换为VMware虚拟机
QEMU是一个开源的硬件虚拟化器,能在多种平台如x86、ARM、PowerPC上运行,支持虚拟化不同体系结构的操作系统。它具有硬件仿真、虚拟化支持、磁盘和网络仿真、快照回滚及可扩展性等特点。要使用QEMU,首先从[官网](https://www.qemu.org/download/)下载,然后通过命令行运行进行转换。转换后的vMDK文件可在VMware中导入,创建新的虚拟机进行使用。
368 1
【qemu虚拟化】将img镜像文件转换为VMware虚拟机
|
7月前
|
存储 人工智能 Cloud Native
耳朵经济快速增长背后,喜马拉雅数据价值如何释放 | 创新场景
喜马拉雅和阿里云的合作,正走在整个互联网行业的最前沿,在新的数据底座之上,喜马拉雅的AI、大数据应用也将大放光彩。本文摘自《云栖战略参考》
46573 5
耳朵经济快速增长背后,喜马拉雅数据价值如何释放 | 创新场景
|
1月前
|
存储 KVM 虚拟化
倚天产品介绍|倚天虚拟化:虚拟机热迁移特性介绍
热迁移分为热迁移和冷迁移,冷迁移过程中有一段明显的时间VM的服务不可用,而热迁移的服务的服务暂停时间非常短。热迁移过程中无需关闭或者长时间暂停VM,VM保持正常运行,只有在热迁移临近结束时有一个非常短暂的停机切换时间。热迁移可保证了VM服务的可用性,提升业务的连续性和用户体验。
|
8月前
|
监控 数据挖掘 虚拟化
VMWare 虚拟机 CPU 设置里针对 CPU 的 虚拟化 CPU 性能计数器(U) 选项功能介绍
VMWare 虚拟机 CPU 设置里针对 CPU 的 虚拟化 CPU 性能计数器(U) 选项功能介绍
760 0
|
8月前
|
安全 虚拟化
VMWare 虚拟机 CPU 设置里针对 CPU 的虚拟化 IOMMU(IO 内存管理单元) 选项功能介绍
VMWare 虚拟机 CPU 设置里针对 CPU 的虚拟化 IOMMU(IO 内存管理单元) 选项功能介绍
505 0
|
11月前
|
Cloud Native 大数据
阿里云最新产品手册——阿里云核心产品——云原生大数据计算服务——云原生、大数据、计算的结合
阿里云最新产品手册——阿里云核心产品——云原生大数据计算服务——云原生、大数据、计算的结合自制脑图
185 1
|
6月前
|
弹性计算 人工智能 Cloud Native
新开普副总裁焦征海:云原生计算基础设施助力新开普创新提速
新开普副总裁焦征海在【云服务器 & 计算服务】专场中带来了题为《云原生计算基础设施助力新开普创新提速》的主题演讲,围绕新开普业务上云之路、倚天ECS实例降本实践以及未来业务展望等相关话题展开。