Azure Kubernetes Service 上 Intel SGX 型機密運算節點的應用程式記憶體保護區支援

Azure 機密運算可讓您保護使用中的敏感資料。 Intel SGX 型記憶體保護區允許執行封裝為 AKS 內容器的應用程式。 在受信任執行環境 (TEE) 內執行的容器會與其他容器隔離,也就是受硬體保護、完整性保護的可證明環境中的節點核心。

概觀

Azure Container Service (AKS) 支援將 Intel SGX 機密計算 VM 節點新增為叢集中的代理程式集區。 這些節點可讓您在硬體型 TEE 內執行敏感性工作負載。 TEE 可讓容器的使用者層級程式碼,配置記憶體的私人區域以直接使用 CPU 執行程式碼。 這些直接使用 CPU 執行的私人記憶體區域稱為記憶體保護區。 記憶體保護區可協助保護資料機密性、資料完整性和程式碼完整性,藉以避免在相同節點和 Azure 運算子上執行其他處理程序。 Intel SGX 執行模型也會移除客體 OS、主機 OS 和 Hypervisor 的中繼層,進而減少攻擊面區域。 Hypervisor 硬體型每一容器獨立執行模型可讓應用程式直接與 CPU 一起執行,同時讓每個容器的特殊記憶體區塊保持加密。 對於零信任、安全性規劃和深層防禦容器策略而言,含機密容器的機密計算節點將提供絕佳幫助。

Graphic of AKS Confidential Compute Node, showing confidential containers with code and data secured inside.

Intel SGX 機密運算節點的功能

  • 透過 SGX 受信任執行環境 (TEE) 的硬體型和處理序層級的容器隔離
  • 異質節點集區叢集 (混合機密和非機密節點集區)
  • 透過「confcom」AKS 附加元件進行加密頁面快取 (EPC) 記憶體型 Pod 排程
  • 預先安裝的 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 節點的 DaemonSet 執行。 如需 EPC 記憶體型部署 (kubernetes.azure.com/sgx_epc_mem_in_MiB) 範例的範例實作,請參閱這裡

具有平台軟體元件的 Intel SGX 報價協助程式

作為外掛程式的一部分,另一個 DaemonSet 會根據 AKS 叢集上支援 Intel SGX 的 VM 節點部署。 當叫用遠端跨進程證明要求時,此 Daemonset 可協助您的機密容器應用程式。

執行遠端證明的記憶體保護區應用程式必須產生引用。 此引用會提供身分識別的密碼編譯證明與應用程式的狀態,以及記憶體保護區的主機環境。 產生引用會依賴使用 Intel 所提供信任的特定軟體元件,而這些元件屬於 SGX 平台軟體元件 (PSW/DCAP) 的一部分。 此 PSW 會封裝為對個別節點執行的精靈集。 您可以在從記憶體保護區應用程式要求證明引用時,使用 PSW。 使用 AKS 提供的服務,有助於更有效地維護 PSW 與主機 (使用屬於 AKS VM 節點一部分的 Intel SGX 驅動程式) 中其他 SW 元件之間的相容性。 深入了解您的應用程式如何使用此 Daemonset,而無需將證明基本類型封裝為容器部署的一部分。更多資訊請參閱此處

程式設計模型

透過合作夥伴和 OSS 的機密容器

機密容器可協助您以機密方式執行執行多數常見程式設計語言執行階段 (Python、Node、JAVA 等) 的現有未修改容器應用程式。 此封裝模型不需要任何原始程式碼修改或重新編譯,而且是透過使用開放原始碼專案或 Azure 合作夥伴解決方案封裝標準 Docker 容器,在 Intel SGX 記憶體保護區中執行最快的方法。 在此封裝和執行模型中,容器應用程式的所有部分都會載入信任的界限 (記憶體保護區)。 此模型適用於市場上可用的現成容器應用程式,或目前在一般用途節點上執行的自訂應用程式。 在此處深入了解準備和部署程序的相關資訊

記憶體保護區感知容器

AKS 上的機密運算節點也支援設計於記憶體保護區中執行的容器,以利用 CPU 提供的特殊指令集。 此程序設計模型可讓您更嚴格地控制您的執行流程,而且需要使用特殊的 SDK 和架構。 此程序設計模型以最低的信賴運算基礎 (TCB),為應用程式流程提供最大程度的控制。 記憶體保護區感知容器開發牽涉到容器應用程式不受信任和信任的元件,因此可讓您管理執行記憶體保護區的一般記憶體和加密頁面快取 (EPC) 記憶體。 深入了解記憶體保護區感知容器。

常見問題集 (FAQ)

此處尋找有關 Azure Kubernetes 服務 (AKS) 節點集區對 Intel SGX 型機密運算節點支援的一些常見問題解答

後續步驟

部署具有機密運算節點的 AKS 叢集

機密容器快速入門範例

Intel SGX 機密 VM - DCv2 SKU 清單

Intel SGX 機密 VM - DCsv3 SKU 清單

利用機密容器進行深度防禦網路研討會