你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Kubernetes 服务上基于 Intel SGX 的机密计算节点的应用程序 enclave 支持

使用敏感数据时,可使用 Azure 机密计算保护敏感数据。 使用基于 Intel SGX 的 enclave,可以在 AKS 中运行打包为容器的应用程序。 在受信任执行环境 (TEE) 中运行的容器可在硬件受保护、完整性受保护的可证明环境中实现与其他容器(节点内核)的隔离。

概述

Azure Kubernetes 服务 (AKS) 支持将 Intel SGX 机密计算 VM 节点添加为群集中的代理池。 利用这些节点,可以在基于硬件的 TEE 中运行敏感工作负载。 TEE 允许容器中的用户级代码分配内存的专用区域,以便直接通过 CPU 执行代码。 这些直接通过 CPU 执行的专用内存区域称为 enclave。 Enclave 有助于保护数据机密性、数据完整性和代码完整性,使其不受在相同节点上运行的其他进程以及 Azure 运算符的影响。 Intel SGX 执行模型还删除了来宾 OS、主机 OS 和虚拟机监控程序中间层,从而减攻击面。 节点中基于每个容器的硬件独立执行模型允许应用程序直接在 CPU 中执行,同时使每个容器的特殊内存块保持加密。 带有机密容器的机密计算节点是对零信任安全性计划和深层防御容器策略的极佳补充。

AKS 机密计算节点的图,其中显示了机密容器,代码和数据在这些机密容器内受保护。

Intel SGX 机密计算节点功能

  • 通过 Intel SGX 受信任执行环境 (TEE) 实现的基于硬件的进程级容器隔离
  • 异源节点池群集(混合机密和非机密节点池)
  • 加密页面缓存 (EPC) 基于内存的 Pod 调度通过“confcom”AKS 附加产品实现
  • 预安装的 Intel SGX DCAP 驱动程序和已安装的内核依赖项
  • 基于 CPU 消耗的水平 pod 自动缩放和群集自动缩放
  • 通过 Ubuntu 18.04 Gen 2 VM 工作器节点的 Linux 容器支持

适用于 AKS 的机密计算外接程序

在群集上运行支持 Intel SGX 的机密计算节点池时,加载项功能将在 AKS 上启用额外功能。 AKS 上的“confcom”附加产品可启用以下功能。

适用于 Intel SGX 的 Azure 设备插件

该设备插件为加密页面缓存 (EPC) 内存实现 Kubernetes 设备插件接口,并从节点公开设备驱动程序。 实际上,此插件会使 EPC 内存成为 Kubernetes 中的另一种资源类型。 用户可以指定此资源的限制,就像指定其他资源一样。 除了计划函数,设备插件还有助于为机密容器部署分配 Intel SGX 设备驱动程序权限。 借助此插件,开发人员可以避免在部署文件中装载 Intel SGX 驱动程序卷。 AKS 群集上的此加载项作为每个支持 Intel SGX 的 VM 节点的守护程序集运行。 此处有基于 EPC 内存的部署 (kubernetes.azure.com/sgx_epc_mem_in_MiB) 的示例实现

具有平台软件组件的 Intel SGX 引用帮助程序

作为插件的一部分,每个 VM 节点都部署了另一个守护程序集,这些守护程序集在 AKS 群集上支持 Intel SGX。 调用远程进程外证明请求时,此守护程序集可帮助机密容器应用。

执行远程证明的 Enclave 应用程序需要生成 Quote。 此 Quote 提供应用程序的标识和状态的加密证明,以及 Enclave 的托管环境。 Quote 生成依赖于 Intel 提供的某些受信任软件组件,这些组件属于 SGX 平台软件组件 (PSW/DCAP)。 此 PSW 打包为一个守护程序集,可在每个节点运行。 从 Enclave 应用请求证明 Quote 时,可以使用 PSW。 使用 AKS 提供的服务,可帮助更好地保持 PSW 与主机中具有 Intel SGX 驱动程序(作为 AKS VM 节点的一部分)的其他 SW 组件之间的兼容性。 在此处详细了解应用如何使用此守护程序集,而无需将证明基元打包为容器部署的一部分

编程模型

通过合作伙伴和 OSS 实现的机密容器

机密容器可帮助以机密方式运行大多数常见编程语言运行时(Python、Node、Java 等)的现有未修改容器应用程序。 此打包模型不需要修改或重新编译任何源代码,是通过使用开放源代码项目或 Azure 合作伙伴解决方案打包标准 Docker 容器实现的在 Intel SGX enclave 中运行的最快方法。 在此打包和执行模型中,容器应用程序的所有部分都将加载到受信任的边界 (enclave) 中。 此模型非常适合市场上可用的现成容器应用程序或当前在常规用途节点上运行的自定义应用程序。 请在此处详细了解准备和部署过程

Enclave 感知容器

AKS 上的机密计算节点还支持编程为在 enclave 中运行以利用 CPU 中可用的特殊指令集的容器。 此编程模型可以对执行流进行更严格的控制,并且需要使用特殊 SDK 和框架。 此编程模型以最低的可信计算基础 (TCB) 为应用程序流提供最大程度的控制。 Enclave 感知容器开发涉及到容器应用程序的不受信任和受信任的部分,从而使你能够管理执行 enclave 的常规内存和加密页面缓存 (EPC) 内存。 详细了解 enclave 感知容器。

常见问题解答 (FAQ)

请在此处查找一些与 Azure Kubernetes 服务 (AKS) 节点池对基于 Intel SGX 的机密计算节点的支持相关的常见问题的解答

后续步骤

使用机密计算节点部署 AKS 群集

机密容器快速入门示例

Intel SGX 机密 VM - DCsv2 SKU 列表

Intel SGX 机密 VM - DCsv3 SKU 列表

利用机密容器进行深层防御的网络研讨会