Qingtian Enclaves service is a feature of Qingtian architecture in Huawei Cloud, which provides an isolated execution environment, named enclave, inside a Huawei ECS instance.
青天围区
该存储库提供了华为云客户使用青天围区服务所需的组件。青天围区是华为云中青天架构的一项特性,它在华为云ECS实例内部提供一个名为围区的隔离执行环境。围区是独立的、高度受限的虚拟机,没有持久化存储、交互式访问或外部网络功能。围区与其父实例之间仅有一个安全的本地套接字连接通道。围区的资源,如vCPU和内存,与父实例分离,并由青天hypervisor确保其父实例无权访问这些vCPU和内存。即使是父实例中的进程、应用或用户(包括root或admin)也无法访问围区内的代码和数据。因此,您可以使用青天围区来保护您的敏感代码和数据。
青天围区还支持与华为密钥管理服务集成的证明功能,允许您验证围区的身份以及在其内部运行的预期代码。根据围区的PCR,您可以为特定IAM用户自定义安全性策略。
要求
使用青天围区时需满足以下要求:
-
父实例要求:
- 仅支持Linux操作系统
- 基于青天的虚拟机,支持围区
- 配置有超过“2个vCPU”
- 至少为启动围区预留“2个免费vCPU”和“512MB空闲内存”
-
青天围区要求:
- 仅支持Linux操作系统
- 配置至少“128MB内存”,且不少于围区eif镜像文件大小的4倍
- 如果配置了“hugepage_size”为“2M”,则支持“512MB内存”;如果配置为“1G”,则支持“256GB内存”
- 配置偶数个“vCPU”,数量小于“62”
- 所有“内存”和“vCPU”应来自父实例的一个NUMA节点,且围区的“vCPU”数量应小于单个NUMA节点内“vCPU”的数量减去“2”
-
青天围区与其父实例的关系:
- 支持在每个父实例上启动多个青天围区
- 围区不能在父实例停止或终止时运行
- 不允许在同一父实例中同时启动并终止围区
- 围区应在专用“CPU”上运行,其他“CPU”,特别是“CPU0”,应保留在父实例中
- 使用超线程时,围区不允许与其父实例共享同一核心
组件信息
此存储库包含以下组件:
enclave:包含在青天围区内运行的所有组件enclave/init:启动围区时的第一个应用程序。enclave/qtsm:用于连接青天安全模块(QTSM)设备以处理证明和PCR查询的工具enclave/qtsm-sdk-c:一组帮助用户开发自己的围区应用的库
qingtian-tool:用于管理青天围区生命周期的命令行工具qingtian-tool/qt-proxy:在父实例中运行的网络代理
virtio-qtbox:父实例中的虚拟PCI设备,允许父实例为其围区分配资源
您可以在各个组件的README.md中获取更多详细信息。
许可证
该项目受Apache 2.0许可证许可。
贡献
我们非常感谢社区对发现潜在安全问题、修复错误和改进项目做出的贡献。阅读CONTRIBUTION.md以了解如何参与青天围区项目的改进工作。
Introduction
庆天飞地服务是华为云中庆天架构的一项功能,它在一个华为ECS实例内部提供了一个名为飞地(enclave)的隔离执行环境。【此简介由AI生成】
Customize my domain