带你读《云原生机密计算最佳实践白皮书》——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天前
|
运维 Cloud Native 云计算
云原生架构的演进:从微服务到无服务器计算
【6月更文挑战第30天】 在数字化转型和技术创新的浪潮中,云原生技术以其灵活性、可扩展性和成本效益成为企业IT战略的核心。本文将探索云原生架构的关键概念,从早期的微服务架构到现代的无服务器计算模型,揭示这一演变如何推动企业更高效地开发、部署和管理应用程序。我们将深入讨论这些技术背后的原理,以及它们如何帮助企业实现敏捷性、弹性和自动化运维。
|
3天前
|
Cloud Native 安全 开发者
云原生架构的演进与实践:从微服务到无服务器计算
本文深入探讨了云原生技术的最新进展,特别关注微服务和无服务器计算模型。通过分析相关研究数据和行业案例,文章揭示了云原生架构如何推动现代应用开发,提升运维效率,并实现资源的最优化配置。文中详细讨论了云原生生态系统中的关键组成部分,包括容器化、自动化管理工具和服务网格,以及它们如何共同促进敏捷性和可扩展性。此外,文章还分析了云原生安全策略的重要性,以及如何在保障安全的同时,保持系统的灵活性和高效性。
|
9天前
|
运维 Cloud Native 开发者
云原生技术演进:从微服务到无服务器计算
【6月更文挑战第22天】 云原生技术如同一场持续的演化之旅,它不断重塑着应用的开发与部署方式。本文将探讨云原生技术如何从微服务架构演变至无服务器计算,以及这一转变对开发者和运维人员带来的深远影响。通过分析容器化、持续集成/持续部署(CI/CD)、微服务治理等关键概念,我们将揭示云原生技术如何在提高应用的可伸缩性、灵活性和可靠性的同时,也提出了新的挑战和机遇。
|
2月前
|
Kubernetes Cloud Native Devops
【阿里云云原生专栏】DevOps与云原生的融合:阿里云CI/CD流水线最佳实践
【5月更文挑战第23天】阿里云融合DevOps与云原生技术,提供高效CI/CD解决方案,助力企业提升研发效能。通过云效平台,集成代码管理、构建服务、容器服务、持续部署及监控日志组件,实现自动化研发流程。案例中,应用从GitHub构建到Kubernetes部署,全程无缝衔接。借助阿里云,企业能快速构建适应云原生的DevOps体系,以应对复杂需求和提升市场竞争力。
84 1
|
2月前
|
存储 弹性计算 Cloud Native
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
|
2月前
|
运维 Kubernetes Cloud Native
构建高效云原生运维体系:Kubernetes最佳实践
【5月更文挑战第9天】 在动态和快速演变的云计算环境中,高效的运维是确保应用稳定性与性能的关键。本文将深入探讨在Kubernetes环境下,如何通过一系列最佳实践来构建一个高效且响应灵敏的云原生运维体系。文章不仅涵盖了容器化技术的选择与优化、自动化部署、持续集成/持续交付(CI/CD)流程的整合,还讨论了监控、日志管理以及灾难恢复策略的重要性。这些实践旨在帮助运维团队有效应对微服务架构下的复杂性,确保系统可靠性及业务的连续性。
|
2月前
|
存储 Cloud Native 对象存储
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
AutoMQ[1] 是新一代基于共享存储架构实现的云原生 Kafka。得益于其存算分离的共享存储架构,通过和阿里云合作,深度使用阿里云可靠、先进的云服务如对象存储OSS、块存储 ESSD、弹性伸缩ESS以及抢占式实例实现了相比 Apache Kafka 10倍的成本优势并且提供了自动弹性的能力。
84037 19
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
|
2月前
|
存储 Cloud Native Serverless
云原生最佳实践系列 7:基于 OSS Object FC 实现非结构化文件实时处理
阿里云OSS对象存储方案利用函数计算FC,在不同终端请求时实时处理OSS中的原图,减少衍生图存储,降低成本。
|
2月前
|
负载均衡 Cloud Native 安全
云原生最佳实践系列 6:MSE 云原生网关使用 JWT 进行认证鉴权
本文档介绍了如何在 MSE(Microservices Engine)云原生网关中集成JWT进行全局认证鉴权。
|
2月前
|
消息中间件 NoSQL Kafka
云原生最佳实践系列 5:基于函数计算 FC 实现阿里云 Kafka 消息内容控制 MongoDB DML 操作
该方案描述了一个大数据ETL流程,其中阿里云Kafka消息根据内容触发函数计算(FC)函数,执行针对MongoDB的增、删、改操作。