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

医疗保健平台上的机密计算

Azure Kubernetes 服务 (AKS)

本文介绍了 Azure 机密计算 (ACC) 提供的用于对使用中的数据进行加密的解决方案。

体系结构

机密医疗保健平台演示图。该平台包括医院、医疗平台提供商和诊断提供商。

下载此体系结构的 Visio 文件

此图概括了该体系结构。 在整个系统中:

工作流

解决方案涉及以下步骤:

  1. 本地医院的职员打开 Web 门户。 整个 Web 应用是 Azure Blob 存储静态网站。
  2. 职员将数据输入到医院的 Web 门户,该门户连接到由流行的医疗平台供应商构建的基于 Python Flask 的 Web API。 SCONE 机密计算软件中的机密节点保护患者数据。 SCONE 在已启用 Software Guard Extensions (SGX) 的 AKS 群集中工作,该组件可帮助在 enclave 中运行该容器。 Web API 将提供敏感数据和应用代码在受信任执行环境中进行加密和隔离的证据。 这意味着,任何人、任何进程和任何日志都无权访问明文数据或应用程序代码。
  3. 医院的 Web 应用客户端请求证明服务(Azure 证明)验证该证据,并接收已签名的证明令牌供其他应用进行验证。
  4. 如果 Web API 需要其他组件(例如 Redis 缓存),则它可以传递证明令牌来验证数据和应用程序代码目前是否仍保留在安全的 enclave 中(有关如何进行验证,请参阅步骤 6)。
  5. Web API 甚至可以使用远程服务,例如由第三方诊断提供程序托管的 ML 模型。 在使用远程服务时,它会传递任何证明令牌,以获取证明所需的 enclave 安全可靠的证据。 Web API 还可以尝试接收并验证诊断提供程序的基础结构的证明令牌。
  6. 远程基础结构接受来自医疗平台的 Web API 的证明令牌,并使用在 Azure 证明服务中找到的公共证书对其进行验证。 如果令牌通过验证,则几乎可以肯定 enclave 是安全的,并且数据或应用代码都未在 enclave 外部公开。
  7. 诊断提供程序确信数据未公开,因此将数据发送到 Open Neural Network Exchange (ONNX) 运行时服务器中其自己的 enclave。 AI 模型将解释医学影像,并将其诊断结果返回到医疗平台的机密 Web API 应用。 在此处,软件随后可与患者记录进行交互,也可以与医院其他员工联系。

组件

  • Azure Blob 存储直接从存储容器提供静态内容,例如 HTML、CSS、JavaScript 和图像文件。

  • Azure 证明是一个统一解决方案,可远程验证平台的可信度。 Azure 证明还会远程验证在平台中运行的二进制文件的完整性。 可以使用 Azure 证明与机密应用程序建立信任。

  • Azure Kubernetes 服务简化了部署 Kubernetes 群集的过程。

  • 机密计算节点托管在特定虚拟机系列上,这些虚拟机系列可通过允许用户级别代码分配专用内存区域(称为 enclave),在基于硬件的受信任执行环境 (TEE) 中的 AKS 上运行敏感工作负载。 机密计算节点可以支持机密容器或 enclave 感知容器。

  • SCONE 平台是由 Scontain 提供的 Azure 合作伙伴独立软件供应商 (ISV) 解决方案。

  • Redis 是一种开源的内存中数据结构存储。

  • 安全容器环境 (SCONE) 支持在 Kubernetes 群集内运行的容器中执行机密应用程序。

  • 机密推理 ONNX 运行时服务器 Enclave (ONNX RT - Enclave) 是一个主机,可以限制 ML 托管方访问推理请求及其相应的响应。

备选方法

  • 可以使用 Fortanix 而不是 SCONE 来部署机密容器以与容器化应用程序结合使用。 使用 Fortanix,你可以灵活地运行和管理各种应用程序(包括现有应用程序、新的 enclave 原生应用程序以及预打包的应用程序)。

  • Graphene 是一个轻型开源来宾操作系统。 Graphene 可以在隔离环境中运行单个 Linux 应用程序,与运行整个操作系统相比,这可让我们获益。 它具有良好的工具支持,可将现有的 Docker 容器应用程序转换为受 Graphene 保护的容器 (GSC)。

方案详细信息

在协作过程中,各家组织彼此共享信息。 但大多数参与方不希望向其他方授予对数据的所有部分的访问权限。 存在用于保护静态数据和传输中数据的机制。 但是,对使用中的数据进行加密会带来不同的挑战。

使用机密计算和容器,该解决方案为提供程序托管的应用程序提供了一种安全地与医院和第三方诊断提供程序协作的方法。 Azure Kubernetes 服务 (AKS) 托管机密计算节点。 Azure 证明与诊断提供程序建立信任。 通过使用这些 Azure 组件,体系结构将隔离医院患者的敏感数据,同时在云中处理特定的共享数据。 因此,诊断提供程序无法访问医院数据。 通过此体系结构,提供程序托管的应用程序也可以利用高级分析。 诊断提供程序将这些分析作为机器学习 (ML) 应用程序的机密计算服务提供。

可能的用例

许多行业出于以下目的使用机密计算来保护其数据:

  • 保护财务数据
  • 保护患者信息
  • 对敏感信息运行 ML 进程
  • 对来自多个源的加密数据集执行算法
  • 保护容器数据和代码完整性

注意事项

这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改善工作负载质量的指导原则。 有关详细信息,请参阅 Microsoft Azure 架构良好的框架

Azure 机密计算虚拟机 (VM) 以可满足一般用途的第二代 D 系列大小提供。 这些大小统称为 D 系列 v2 或 DCsv2 系列。 此方案使用支持 Intel SGX 的 DCs_v2 系列虚拟机与第二代操作系统 (OS) 映像。 但只能在某些区域部署特定大小。 有关详细信息,请参阅快速入门:在市场中部署 Azure 机密计算 VM可用产品(按区域)

成本优化

成本优化是关于寻找减少不必要的费用和提高运营效率的方法。 有关详细信息,请参阅成本优化支柱概述

要了解运行此方案的成本,请使用 Azure 定价计算器,该计算器预配置了所有 Azure 服务。

如图中所示,为 Contoso 医疗 SaaS 平台提供了一个示例成本配置文件。 它包括以下组件:

  • 系统节点池和 SGX 节点池:无磁盘,全部为临时
  • AKS 负载均衡器
  • Azure 虚拟网络:标称
  • Azure 容器注册表
  • 单页应用程序 (SPA) 的存储帐户

配置文件不包括以下组件:

  • Azure 证明服务:免费

  • Azure Monitor 日志:基于使用情况

  • SCONE ISV 许可

  • 处理敏感数据的解决方案所需的合规性服务,其中包括:

    • Microsoft Defender for Cloud 和 Microsoft Defender for Kubernetes
    • Azure DDoS 防护:网络保护
    • Azure 防火墙
    • Azure 应用程序网关和 Azure Web 应用程序防火墙
    • Azure Key Vault

部署此方案

部署此方案涉及以下概要步骤:

  • 在支持 SGX 的现有 AKS 群集上部署机密推理服务器。 有关此步骤的信息,请参阅 GitHub 上的机密 ONNX 推理服务器项目。

  • 配置 Azure 证明策略。

  • 部署支持 SGX 的 AKS 群集节点池。

  • 获取对 名为 SconeApps 的策展机密应用程序的访问权限。 SconeApps 在仅供商业客户通过 SCONE Standard Edition 使用的专用 GitHub 存储库中提供。 转到 SCONE 网站,并直接联系该公司以获取此服务级别。

  • 在 AKS 群集上安装并运行 SCONE 服务。

  • 在 AKS 群集上安装并测试基于 Flask 的应用程序。

  • 部署并访问 Web 客户端。

这些步骤侧重于 enclave 容器。 受保护的基础结构将扩展到此实现之外,并包括合规性要求,例如 HIPAA 所要求的额外保护。

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

主要作者:

后续步骤