更新时间:2026-01-23 GMT+08:00
分享

通用类

什么是QingTian Enclave?

QingTian Enclave是基于QingTian架构虚拟机产品所提供的一个安全特性。借助QingTian Enclave提供的隔离、高度受限的环境,客户可以部署其安全敏感型应用程序,缩小其攻击面。

为什么需要使用QingTian Enclave?

QingTian Enclave在普通的ECS实例中提供了隔离的计算环境,以处理高度敏感的数据。

QingTian Enclave是完全独立的虚拟机,无持久化存储、交互式访问或外部网络连接,您的ECS实例通过安全的本地通道与QingTian Enclave之间进行通信。

什么时候需要使用QingTian Enclave?

当您需要处理安全敏感型数据,并希望处理该数据的过程与有权访问您实例的用户、应用程序或者三方库隔离时,您应该使用QingTian Enclave。

您可以利用QingTian Enclave开发和运行各种程序,以应对不同的使用场景,比如个人隐私信息处理,专有代码和算法运算,多方计算等。

如何开始使用QingTian Enclave?

您可以参考QingTian Enclave快速入门,来开启您的QingTian Enclave开发之旅。

什么是内存和CPU隔离?

内存和CPU隔离技术可以防止ECS实例上的用户、应用程序和第三方库直接访问已被隔离给QingTian Enclave使用的内存和CPU。您可以通过华为云QingTian命令行工具(qt CLI),使用这部分被隔离的内存和CPU启动QingTian Enclave虚拟机,详细操作请参考QingTian CLI(qt CLI)

QingTian Enclave是如何保证内存和CPU隔离的?

QingTian Enclave采用经过验证的基于CPU的隔离技术,并结合QingTian架构的独特设计和基于华为自研智能网卡的可信根证书,共同实现隔离。由华为云开发和设计的极简QingTian Hypervisor可以将服务器的物理资源进行分区。相比于其他虚拟化技术,QingTian Hypervisor裁减了所有不必要的功能。QingTian Enclave扩展了QingTian Hypervisor的隔离功能,保护了分配给QingTian Enclave的CPU和内存,保证其与ECS实例的CPU和内存资源相隔离,为您提供一个完全隔离的可执行环境。

哪些实例规格支持QingTian Enclave?

目前c7t、kc2实例已支持QingTian Enclave特性。

什么是证明(Attestation)文档?

证明文档用于证明QingTian Enclave实例的可信度量结果。证明文档由QingTian Hypervisor生成,文档内容包括PCR(Platform configuration registers,平台配置寄存器)列表、QingTian Attestation PKI(Public Key Infrastructure,公钥基础设施)证书链、密码算法声明以及Enclave应用自定义数据。

证明文档由华为云QingTian Attestation PKI签署。KMS(Key management Service,密钥管理服务)内置了对QingTian Enclave证明的支持。通过使用QingTian Enclave SDK中包含的华为云KMS API,您可以在QingTian Enclave实例中基于QingTian Enclave证明来执行华为云KMS操作,比如解密、生成随机数和加密等操作。华为云KMS服务提取来自QingTian Enclave的证明文档并根据预设的华为云IAM(Identity and Access Management,统一身份认证服务)授权策略对其进行访问权限控制。

QingTian Enclave证明文件的信任根源是什么?该如何验证它?

证明文档由华为云QingTian Attestation PKI (Public Key Infrastructure)签署。华为云QingTian根证书可以从https://qingtian-enclave.obs.myhuaweicloud.com/huawei_qingtian-enclaves_root-G1.zip下载获取。文档签名验证方法请参考文档签名验证

QingTian Enclave如何进行收费?

目前使用QingTian Enclave不会收取额外费用,您只需要支付ECS实例的购买费用。

为什么执行隔离服务会失败(systemctl start qt-enclave-env)?

在系统运行过程中,不可避免地会产生碎片化内存,使得隔离服务时无法获取连续内存大页。

执行systemctl status qt-enclave-env命令,查看错误日志内是否包含allocating hugepages error

如果包含该错误日志,则说明此时系统内所提供的可用空闲连续大页资源少于您所期望的内存大页数量($wanted_mem_num)。

您可以采用如下两种方案进行处理。

  • 方案一:
    1. 执行以下命令,查看当前系统所能提供的最大可用连续内存大页数量($free_mem_num)。

      cat /sys/devices/system/node/node0/hugepages/hugepages-1048576kB/free_hugepages

    2. 执行以下命令,修改/etc/qingtian/enclave/qt-enclave-env.conf配置文件,使得memory_mib的值低于($free_mem_num *1024)。

      vim /etc/qingtian/enclave/qt-enclave-env.conf

      建议您在系统启动后立即执行资源隔离服务,避免反复执行隔离命令造成内存碎片化。

  • 方案二:
    1. 执行以下命令,修改grub文件(/etc/default/grub)。

      vim /etc/default/grub

      在grub文件的Linux命令行参数(GRUB_CMDLINE_LINUX)中,添加(default_hugepagesz=1G hugepagesz=1G hugepages=$wanted_mem_num)。

    2. 执行以下命令,使得配置生效。

      grub2-mkconfig -o /boot/efi/EFI/hce/grub.cfg

    3. 重启虚拟机,重启后可再次查看可用大页数量。

      reboot

启动QingTian Enclave失败,虚拟机内报错误日志Add vCPU failed [Bad address],主机节点报错Vsock通道连接异常怎么办?

在qproxy进程运行期间(ps -ef | grep qproxy),当qproxy服务启动后,如果QingTian Enclave退出,qproxy服务仍在尝试重连,造成Vsock通道占用,此时新启动的QingTian Enclave因无法正常使用Vsock通道进行生命周期操作,则虚拟机内部会报错误日志Add vCPU failed [Bad address],主机节点会报错Vsock通道连接异常。

出现上述问题,您可以采用如下方法解决:

QingTian Enclave退出后需要执行以下命令,同步停止qproxy服务。

kill -9 ${qproxy_pid}

为什么关闭大规格QingTian Enclave后,立刻再次启动QingTian Enclave失败,间隔一段时间后重启成功?

由于QingTian Enclave涉及机密计算,关闭大规格QingTian Enclave后,主机节点在进行内存清零,这需要耗费一段时间,内存清零未结束前无空闲内存可用于新QingTian Enclave启动。

因此,在使用大内存QingTian Enclave时,建议您退出后等待一段时间再重新启动QingTian Enclave。

为什么QingTian Enclave使用Debug模式启动成功,不使用Debug模式启动失败?

出现该问题的可能原因为证书损坏,导致镜像校验不通过。

建议您更新证书后重新制作QingTian Enclave镜像,则启动QingTian Enclave成功。

为什么QingTian Enclave长时间运行后,内部发生时间漂移现象?

QingTian Enclave的网络连接,无法使用NTP服务同步时间,当系统长时间运行情况时,由于各种硬件或软件原因,可能会产生时间漂移现象。

建议您参考QingTian Enclave系统时间校准最佳实践重新制作镜像,将父虚拟机中的时间定时同步到QingTian Enclave系统中。

相关文档