1

我最近了解到英特尔 SGX 处理器能够加密飞地以将持久存储到磁盘。之后,我开始编写我的第一个 SGX 应用程序,现在我想知道是否有机会在 Kubernetes 上部署它们?

4

1 回答 1

3

您的问题可以分为多个步骤:

  1. 拥有一个将 SGX 公开给您的应用程序的 Kubernetes 集群

您需要具有支持 SGX 的 CPU 的 Kubernetes 节点。Kubernetes 像 SGX 一样处理“特殊设备”的方式是通过Device Plugins。Kubernetes 存在多个 SGX 设备插件:

一旦你为节点配备了这样的插件,它们就会为你提供一种将 SGX 设备暴露给你的容器的机制。

  1. 为 Kubernetes 构建 SGX 应用程序并访问 SGX 资源

您需要将 enclave 捆绑到容器中并编写 Kubernetes 资源定义。云原生应用程序最常用的语言可能是 Go。基于 EdgelessRT Go 运行时和 SDK(link) 的机密微服务应用程序有一个很好的示例,它使用 Azure 设备插件将 SGX 暴露给容器:https ://github.com/edgelesssys/emojivoto

  1. 为您的 SGX 应用程序管理证明、密封等

在 Kubernetes 上部署 SGX 应用程序时,最有趣的一点可能是 SGX 特定的编排。虽然 Kubernetes 处理所有常规编排,但 SGX 特定的任务(如远程证明、迁移和部署的机密管理)需要单独处理。Marblerun 服务网格解决了这些任务,即:

于 2021-01-05T14:46:53.603 回答