醫療保健平台上的機密運算

Azure Kubernetes Service (AKS)

本文會提出 Azure 機密運算 (ACC) 所提供用來加密使用中資料的解決方案。

架構

機密醫療保健平臺示範的圖表。平臺包含醫院、醫療平臺提供者和診斷提供者。

下載這個架構的 Visio 檔案

此圖表會概述架構。 在整個系統中:

工作流程

此解決方案涉及下列步驟:

  1. 當地醫院的職員開啟入口網站。 整個 Web 應用程式是Azure Blob 儲存體靜態網站。
  2. 職員將資料輸入醫院的入口網站,入口網站會連線到由熱門醫療平台廠商所建置的 Python Flask 型 Web API。 SCONE 機密運算軟體中的機密節點可保護患者的資料。 SCONE 會在已啟用 Software Guard Extensions (SGX) 的 AKS 叢集中運作,以協助在記憶體保護區中執行容器。 Web API 提供證據,指出敏感的資料和應用程式程式碼已在受信任執行環境中加密和隔離。 這表示沒有任何人、任何程序和任何記錄可以存取純文字資料或應用程式的程式碼。
  3. 醫院的 Web 應用程式用戶端會要求證明服務 (Azure 證明) 驗證此辨識項,並且會接收已簽署的證明權杖以供其他應用程式驗證。
  4. 如果 Web API 需要額外的元件 (例如 Redis 快取),則可傳遞證明權杖,以驗證資料和應用程式程式碼目前仍在安全的記憶體保護區中 (請參閱步驟 6 以了解如何驗證)。
  5. Web API 甚至可以取用遠端服務,例如第三方診斷提供者所裝載的 ML 模型。 Web API 如果這麼做,就會繼續傳遞任何證明權杖,以取得所需記憶體保護區安全無虞的證據。 Web API 也可以嘗試接收及驗證診斷提供者基礎結構的證明權杖。
  6. 遠端基礎結構接受來自醫療平台 Web API 的證明權杖,並使用在 Azure 證明服務中找到的公開憑證進行驗證。 如果權杖經過驗證,則幾乎可以確定記憶體保護區安全無虞,而且資料和應用程式的程式碼都未在記憶體保護區外部開啟。
  7. 確信資料未曾洩露的診斷提供者,將資料傳送至其在 Open Neural Network Exchange (ONNX) 執行階段伺服器中的自有記憶體保護區。 AI 模型會解釋醫療影像,並將其診斷結果傳回至醫療平台的機密 Web API 應用程式。 從這裡開始,軟體便可與患者記錄互動和/或與其他醫院人員連絡。

單元

  • Azure Blob 儲存體會直接從儲存體容器提供靜態內容,例如 HTML、CSS、JavaScript 和影像檔。

  • Azure 證明是整合解決方案,可從遠端驗證平台的可信度。 Azure 證明也會從遠端驗證平台中所執行二進位檔的完整性。 請使用 Azure 證明與機密應用程式建立信任關係。

  • Azure Kubernetes Service可簡化部署 Kubernetes 叢集的程式。

  • 機密運算節點裝載於特定的虛擬機器系列上,可在以硬體為基礎的受信任執行環境 (TEE) 內的 AKS 上執行敏感性工作負載,方法是允許使用者層級的程式碼配置私人記憶體區域 (稱為記憶體保護區)。 機密運算節點可以支援機密容器或記憶體保護區感知容器。

  • SCONE 平台是來自 Scontain 的 Azure 合作夥伴獨立軟體廠商 (ISV) 解決方案。

  • Redis 是開放原始碼的記憶體內部資料結構存放區。

  • 安全的容器環境 (SCONE) 可支援在容器 (此容器在 Kubernetes 叢集內部執行) 中執行機密應用程式。

  • 機密推斷 ONNX 執行階段伺服器記憶體保護區 (ONNX RT - 記憶體保護區) 是一部主機,這部主機可限制 ML 裝載方,使其無法存取推斷要求及其對應的回應。

替代方案

  • 您可以使用 Fortanix (而非 SCONE) 來部署要與容器化應用程式搭配使用的機密容器。 Fortanix 可讓您獲得要執行和管理一組最廣泛的應用程式所需的彈性:現有應用程式、新的記憶體保護區原生應用程式,以及預先封裝的應用程式。

  • Graphene 是輕量的開放原始碼客體作業系統。 Graphene 可在隔離的環境中執行單一 Linux 應用程式,其優點相當於執行完整的作業系統。 其有良好的工具支援,可將現有的 Docker 容器應用程式轉換為 Graphene Shielded Containers (GSC)。

實例詳細資料

組織彼此在共同作業時會共用資訊。 但各方大多不想讓他方存取資料的所有部分。 因此,會有機制來保護待用資料和傳輸中的資料。 不過,對使用中的資料會帶來不同的挑戰。

此解決方案藉由使用機密運算和容器,讓提供者裝載的應用程式能夠安全地與醫院和第三方診斷提供者共同作業。 Azure Kubernetes Service (AKS) 會裝載機密運算節點。 Azure 證明會與診斷提供者建立信任關係。 此架構會藉由使用這些 Azure 元件,來隔離醫院患者的敏感性資料,而在雲端中處理特定的共用資料。 然後,診斷提供者就無法存取醫院資料了。 透過這個架構,提供者裝載的應用程式也可以利用進階的分析功能。 診斷提供者會以機器學習 (ML) 應用程式的機密運算服務形式來提供這些分析。

潛在使用案例

許多產業會針對以下用途,使用機密運算來保護其資料:

  • 保護財務資料
  • 保護專利資訊
  • 對敏感性資訊執行 ML 程序
  • 對來自許多來源的加密資料集執行演算法
  • 保護容器資料和程式碼完整性

考量事項

這些考慮會實作 Azure Well-Architected Framework 的要素,這是一組可用來改善工作負載品質的指引原則。 如需詳細資訊,請參閱 Microsoft Azure Well-Architected Framework

Azure 機密運算虛擬機器 (VM) 適用於一般用途需求的第二代 D 系列大小。 這些大小統稱為 D 系列 v2 或 DCsv2 系列。 此案例會使用 Intel 已啟用 SGX 功能的 DCs_v2 系列虛擬機器,且其中具有 Gen2 作業系統 (OS) 映像。 但是,您只能在特定區域中部署特定的大小。 如需詳細資訊,請參閱快速入門:在 Marketplace 中部署 Azure 機密運算 VM依區域提供的產品

成本最佳化

成本最佳化是關於考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱成本最佳化要素的概觀

若要探索執行此案例的成本,請使用 Azure 定價計算機來預先設定所有 Azure 服務。

如圖所示,Contoso Medical SaaS Platform 有成本設定檔範例。 包括下列元件:

  • 系統節點集區和 SGX 節點集區:無磁碟、全為暫時性
  • AKS Load Balancer
  • Azure 虛擬網路:標稱
  • Azure Container Registry
  • 單頁應用程式 (SPA) 的儲存體帳戶

設定檔不包含下列元件:

  • Azure 證明服務:免費

  • Azure 監視器記錄:以使用量為基礎

  • SCONE ISV 授權

  • 使用敏感性資料的解決方案所需的合規性服務,包括:

    • 適用於雲端的 Microsoft Defender 和適用於 Kubernetes 的 Microsoft Defender
    • Azure DDoS 保護:網路保護
    • Azure 防火牆
    • Azure 應用程式閘道和 Azure Web 應用程式防火牆
    • Azure 金鑰保存庫

部署此案例

部署此案例會涉及下列高階步驟:

  • 在已啟用 SGX 功能的現有 AKS 叢集上部署機密推斷伺服器。 如需此步驟的詳細資訊,請參閱 GitHub 上的機密 ONNX 推斷伺服器專案。

  • 設定 Azure 證明原則。

  • 部署已啟用 SGX 功能的 AKS 叢集節點集區。

  • 存取稱為 SconeApps 的策展機密應用程式。 SconeApps 目前僅適用於商業客戶的私人 GitHub 存放庫 (透過 SCONE Standard Edition)。 請移至 SCONE 網站,直接與該公司連絡以取得此服務等級。

  • 在 AKS 叢集上安裝並執行 SCONE 服務。

  • 在 AKS 叢集上安裝並測試 Flask 型應用程式。

  • 部署和存取 Web 用戶端。

這些步驟著重於記憶體保護區容器。 受保護的基礎結構會超出此實作的範圍,並且會納入合規性需求,例如 HIPAA 所要求的額外保護。

參與者

本文由 Microsoft 維護。 最初是由下列參與者所撰寫。

主體作者:

下一步