带你读《云原生机密计算最佳实践白皮书》——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

相关文章
|
1月前
|
存储 SQL 数据库
虚拟化数据恢复—Vmware虚拟机误还原快照的数据恢复案例
虚拟化数据恢复环境: 一台虚拟机从物理机迁移到ESXI虚拟化平台,迁移完成后做了一个快照。虚拟机上运行了一个SQL Server数据库,记录了数年的数据。 ESXI虚拟化平台上有数十台虚拟机,EXSI虚拟化平台连接了一台EVA存储,所有的虚拟机都存放在EVA存储上。 虚拟化故障: 工组人员误操作将数年前迁移完成后做的快照还原了,也就意味着虚拟机状态还原到数年前,近几年数据都被删除了。 还原快照相当于删除数据,意味着部分存储空间会被释放。为了不让这部分释放的空间被重用,需要将连接到这台存储的所有虚拟机都关掉,需要将不能长时间宕机的虚拟机迁移到别的EXSI虚拟化平台上。
107 50
|
2月前
|
存储 Dart Java
Dart 虚拟机运行原理
【10月更文挑战第20天】Dart 虚拟机通过一系列复杂的机制和操作,确保 Dart 代码能够准确、高效地执行。它为 Dart 语言的广泛应用提供了坚实的基础和可靠的运行环境
36 6
|
1月前
|
存储 持续交付 虚拟化
|
2月前
|
存储 运维 虚拟化
虚拟化数据恢复——Hyper-V虚拟化故障导致虚拟机文件丢失的数据恢复案例
在Windows Server上部署的Hyper-V虚拟化环境中,因存储中虚拟机数据文件丢失导致服务瘫痪。北亚企安数据恢复工程师通过物理检测、操作系统及文件系统检测,确定为人为格式化造成,并通过镜像硬盘、重组RAID、分析并恢复文件索引项等步骤,成功恢复数据,最终在新Hyper-V环境中验证并迁移所有虚拟机,确保用户业务恢复正常运行。
|
3月前
|
存储 SQL 数据挖掘
虚拟化数据恢复—VMware虚拟机vmdk文件被误删除的数据恢复案例
虚拟化数据恢复环境: 某品牌服务器(部署VMware EXSI虚拟机)+同品牌存储(存放虚拟机文件)。 虚拟化故障: 意外断电导致服务器上某台虚拟机无法正常启动。查看虚拟机配置文件发现这台故障虚拟机除了磁盘文件以外其他配置文件全部丢失,xxx-flat.vmdk磁盘文件和xxx-000001-delta.vmdk快照文件还在。管理员联系VMware工程师寻求帮助。VMware工程师尝试新建一个虚拟机来解决故障,但发现ESXi存储空间不足。于是将故障虚拟机下的xxx-flat.vmdk磁盘文件删除,然后重建一个虚拟机并且分配固定大小的虚拟磁盘。
|
3月前
|
存储 SQL 数据挖掘
虚拟化数据恢复—EXSI虚拟机误还原快照的数据恢复案例
虚拟化技术原理是将硬件虚拟化供不同的虚拟机使用,一台物理机上可以有多台虚拟机。人为误操作或者物理机故障会导致上层虚拟机不可用,甚至虚拟机里的重要数据丢失。下面给大家分享一个vmware虚拟化误操作还原快照的数据恢复案例。 虚拟化数据恢复环境: 一台由物理机迁移到EXSI上面的虚拟机,迁移完成后做了一个快照。该虚拟机上运行SQL Server数据库,记录了几年的数据。 EXSI虚拟化平台上一共有数十台虚拟机,EXSI连接了一台EVA存储,所有的虚拟机(包括故障虚拟机)都放在EVA存储上。
|
3月前
|
存储 虚拟化
使用DiskGenius工具来实现物理机迁移虚拟机,实现虚拟化
【9月更文挑战第1天】使用 DiskGenius 工具可将物理机迁移到虚拟机,实现系统与数据的虚拟化。此过程包括:安装 DiskGenius 和准备虚拟化平台;备份物理机数据;使用 DiskGenius 备份磁盘;在虚拟化软件中创建新虚拟机并导入磁盘备份;配置及调整虚拟机设置;测试性能并优化资源分配。这有助于测试、开发及系统管理。
438 5
|
4月前
|
存储 安全 Java
JVM常见面试题(二):JVM是什么、由哪些部分组成、运行流程,JDK、JRE、JVM关系;程序计数器,堆,虚拟机栈,堆栈的区别是什么,方法区,直接内存
JVM常见面试题(二):JVM是什么、由哪些部分组成、运行流程是什么,JDK、JRE、JVM的联系与区别;什么是程序计数器,堆,虚拟机栈,栈内存溢出,堆栈的区别是什么,方法区,直接内存
JVM常见面试题(二):JVM是什么、由哪些部分组成、运行流程,JDK、JRE、JVM关系;程序计数器,堆,虚拟机栈,堆栈的区别是什么,方法区,直接内存
|
4月前
|
JavaScript Linux 应用服务中间件
如何将Vue项目打包丢入虚拟机CentOS 7中运行
好的,我会按照你的要求,以"这篇文章"四个字开头,用一句话为你摘要每篇文章的主要内容。让我们开始吧。如果你现在就发给我链接,我会立即为你解读。
|
5月前
|
存储 安全 虚拟化
虚拟化数据恢复—虚拟机数据丢失导致Hyper-V服务瘫痪数据恢复
虚拟化数据恢复环境: 一台服务器上部署的Hyper-V虚拟化平台,虚拟机的硬盘文件和配置文件放在一台某品牌MD3200存储中。该存储中有一组由4块硬盘组建的raid5磁盘阵列,还有一块大容量硬盘存放虚拟机数据文件的备份。 虚拟化故障: MD3200存储中虚拟机数据文件丢失,导致Hyper-V服务瘫痪,虚拟机无法使用。
虚拟化数据恢复—虚拟机数据丢失导致Hyper-V服务瘫痪数据恢复
下一篇
DataWorks