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

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

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



步骤三:启动 SGX Guest

启动方式一:使用 QEMU 命令行启动

请输入以下 QEMU 命令来启动 SGX Guest。

/usr/libexec/qemu-kvm \
 -enable-kvm \
 -cpu host,+sgx-provisionkey -smp 8,sockets=1 -m 16G -no-reboot \
 -drive fifile=$HOME/vsgx/AnolisOS-8.6-x86_64-ANCK.qcow2,if=none,id=disk0,format=qcow2 \
 -device virtio-scsi-pci,id=scsi0,disable-legacy=on,iommu_platform=true -device scsi-hd,drive= 
 disk0 -nographic \
 -monitor pty -monitor unix:monitor,server,nowait \
 -object memory-backend-epc,id=mem1,size=64M,prealloc=on \
 -M sgx-epc.0.memdev=mem1,sgx-epc.0.node=0

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

localhost login: root
Password: 123456

启动方式二:使用 virsh 启动 sgx guest

virsh 是用于管理 虚拟化环境中的客户机和 Hypervisor 的命令行工具,与 virt-manager 等工具类似,它也是通过 libvirt API 来实现虚拟化的管理。virsh 是完全在命令行文本模式下运行的用户态工具,它是系统管理

员通过脚本程序实现虚拟化自动部署和管理的理想工具之一。

安装 libvirt

说明:目前 Anolis 的 libvirt 不支持 sgx 功能,需要打上 intel 的 6 个 patch。目前基于intel 提供的代

码自行打包,由 inclavare-containers repo 进行管理。

cd $HOME/vsgx && \
 wget https://mirrors.openanolis.cn/inclavare-containers/bin/anolis8.6/libvirt-8.5.0/libvirt
 -with-vsgx-support.tar.gz && \
 tar zxvf libvirt-with-vsgx-support.tar.gz && \
 cd libvirt-with-vsgx-support && \
 yum localinstall -y *.rpm

在 libvirt 中配置 QEMU

在 QEMU 中构建英特尔 SGX 环境,需要访问以下设备:

• /dev/sgx_enclave 启动enclave
• /dev/sgx_provision 启动供应认证enclave (PCE)
• /dev/sgx_vepc 分配 EPC 内存页

libvirt 默认启用的 cgroup 控制器将拒绝访问这些设备文件。编辑 /etc/libvirt/qemu.conf 并更改 cgroup_device_acl 列表已包括所有三个:

cgroup_device_acl = [
 "/dev/null", "/dev/full", "/dev/zero",
 "/dev/random", "/dev/urandom",
 "/dev/ptmx", "/dev/kvm",
 "/dev/rtc","/dev/hpet",
 "/dev/sgx_enclave", "/dev/sgx_provision", "/dev/sgx_vepc"
]

QEMU 还需要读取和写入 /dev/sgx_vepc 设备,该设备由 root 拥有,文件模式为 600。这意味着您必须将 QEMU 配置为以 root 身份运行。 请编辑 /etc/libvirt/qemu.conf ,并设置用户参数。

user =“root”

进行这些更改后,您需要重新启动 libvirtd 服务:

systemctl restart libvirtd

配置 NAT 网络

重启 libvirtd 服务之后,请检查当前的网络设置。

# virsh net-list --all
 名称 状态 自动开始 持久
---------------------------------------
 default 活动 否 否

libvirt 默认使用了一个名为 default 的 NAT 网络,这个网络默认使用 virbr0 作为桥接接口,使用 dnsmasq 来为使用 nat 网络的虚拟机提供 dns 及 dhcp 服务。

如果您需要自定义 libvirt 虚拟网络,请参考libvirt 网络管理。



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

相关文章
|
2月前
|
Cloud Native 开发者
电子好书发您分享《云原生开发者洞察白皮书》
电子好书发您分享《云原生开发者洞察白皮书》
66 2
|
2月前
|
运维 Kubernetes Cloud Native
构建高效云原生运维体系:Kubernetes最佳实践
【5月更文挑战第9天】 在动态和快速演变的云计算环境中,高效的运维是确保应用稳定性与性能的关键。本文将深入探讨在Kubernetes环境下,如何通过一系列最佳实践来构建一个高效且响应灵敏的云原生运维体系。文章不仅涵盖了容器化技术的选择与优化、自动化部署、持续集成/持续交付(CI/CD)流程的整合,还讨论了监控、日志管理以及灾难恢复策略的重要性。这些实践旨在帮助运维团队有效应对微服务架构下的复杂性,确保系统可靠性及业务的连续性。
|
2月前
|
Kubernetes Cloud Native Devops
【阿里云云原生专栏】DevOps与云原生的融合:阿里云CI/CD流水线最佳实践
【5月更文挑战第23天】阿里云融合DevOps与云原生技术,提供高效CI/CD解决方案,助力企业提升研发效能。通过云效平台,集成代码管理、构建服务、容器服务、持续部署及监控日志组件,实现自动化研发流程。案例中,应用从GitHub构建到Kubernetes部署,全程无缝衔接。借助阿里云,企业能快速构建适应云原生的DevOps体系,以应对复杂需求和提升市场竞争力。
86 1
|
2月前
|
负载均衡 Kubernetes Cloud Native
云原生最佳实践系列2:基于 MSE 云原生网关同城多活
通过使用阿里云的云原生微服务引擎 MSE,可以实现注册中心的同城容灾多活微服务应用。MSE 提供了云原生网关和注册中心,支持机房级故障的秒级自动转移、非对等部署下的全局流量负载均衡以及流量精细化管控。
702 39
|
2月前
|
负载均衡 Cloud Native 安全
云原生最佳实践系列 6:MSE 云原生网关使用 JWT 进行认证鉴权
本文档介绍了如何在 MSE(Microservices Engine)云原生网关中集成JWT进行全局认证鉴权。
|
2月前
|
弹性计算 监控 Cloud Native
云原生最佳实践系列 4:基于 MSE 和 SAE 的微服务部署与压测
通过MSE(微服务引擎)、SAE(Serverless应用引擎)、ARMS(应用监控服务)、PTS(性能测试服务)等产品,实现微服务的无服务化部署、监控和弹性伸缩。
|
2月前
|
消息中间件 NoSQL Kafka
云原生最佳实践系列 5:基于函数计算 FC 实现阿里云 Kafka 消息内容控制 MongoDB DML 操作
该方案描述了一个大数据ETL流程,其中阿里云Kafka消息根据内容触发函数计算(FC)函数,执行针对MongoDB的增、删、改操作。
|
2月前
|
存储 Cloud Native Serverless
云原生最佳实践系列 7:基于 OSS Object FC 实现非结构化文件实时处理
阿里云OSS对象存储方案利用函数计算FC,在不同终端请求时实时处理OSS中的原图,减少衍生图存储,降低成本。
|
2月前
|
消息中间件 Cloud Native 网络安全
云原生最佳实践系列 3:基于 SpringCloud 应用玩转 MSE
该文档介绍了基于云原生应用的产品构建的微服务架构实践。
|
2月前
|
运维 供应链 安全
从方法论到最佳实践,深度解析企业云原生 DevSecOps 体系构建
本文主要介绍了云原生安全的现状以及企业应用在云原生化转型中面临的主要安全挑战以及相对成熟的一部分安全体系方法论,深度解析企业云原生 DevSecOps 体系构建。