Azure Kubernetes Service 上的機密容器 (預覽版)
隨著雲端原生應用程式開發的成長,還需要保護在雲端環境中執行的工作負載。 將工作負載容器化會形成此程式設計模型的重要元件,因此保護容器對雲端中機密執行至關重要。
Azure Kubernetes Service 上的機密容器 (AKS) 可在 Kubernetes 工作負載中啟用容器等級隔離。 這是 Azure 套件的機密運算產品,並使用 AMD SEV-SNP 記憶體加密以利在執行階段保護您的容器。
機密容器對於涉及敏感資料的部署案例很有吸引力 (例如,個人資料或任何具有法規合規性所需強大安全性的資料)。
是什麼讓容器成為機密?
與機密運算聯盟所設定的指導方針一致,Microsoft 是機密容器的創始成員,必須滿足下列事項 –
- 透明度:敏感性應用程式共用所在的機密容器環境,您可以查看並確認其是否安全。 信任的運算基礎 (TCB) 的所有元件都會開放原始碼。
- 稽核能力:您能夠確認並查看哪個 CoCo 環境套件版本 (包括 Linux 客體 OS 與所有元件) 是最新的。 Microsoft 透過證明來向客體 OS 和容器執行階段環境進行簽署,以進行驗證。 其也會發行客體 OS 組建的安全雜湊演算法 (SHA),以建置字串清晰度和控制劇本。
- 完整證明:所有隸屬於 TEE 的項目都應該由 CPU 進行完整測量,且能夠從遠端驗證。 AMD SEV-SNP 處理器的硬體報告應透過證明宣告,來反映容器層和容器執行階段設定雜湊。 應用程式可以在本機擷取硬體報告,包括反映客體 OS 映像和容器執行階段的報告。
- 程式碼完整性:執行階段強制執行一律可透過客戶針對容器和容器設定定義的原則取得,例如,不可變的原則和容器簽署。
- 與操作員隔離:採用最低權限和最高隔離度的安全性設計,可防護所有不受信任的合作對象,包括客戶/租用戶系統管理員。 其包含強化現有 Kubernetes 控制平面對機密 Pod 的存取 (kubelet)。
但是,有了這些功能的機密性,產品應該加總其使用便利性:支援具有高 Kubernetes 功能一致性的所有未修改 Linux 容器。 此外,還支援單一叢集中異質節點集區 (GPU、一般用途節點),以針對成本進行最佳化。
AKS 上的機密容器是什麼形式?
依據 Microsoft 對開放原始碼社群的承諾,機密容器的基礎堆疊會使用 Kata CoCo 代理程式作為在裝載執行機密工作負載之 Pod 節點中執行的代理程式。 由於許多 TEE 技術需要主機和客體之間的界限,Kata Containers 是 Kata CoCo 初始工作的基礎。 Microsoft 也為 Kata Coco 社群貢獻了在機密公用程式 VM 內執行的容器。
Kata 機密容器位於 Azure Linux AKS 容器主機內。 Azure Linux 和 Cloud Hypervisor VMM (虛擬機監視器) 是使用者面向/使用者空間軟體,可用來建立和管理虛擬機器的存留期。
AKS 中的容器等級隔離
根據預設,AKS 所有工作負載都會共用相同的核心和相同的叢集管理員。透過 AKS 上的 Pod 沙箱預覽,隔離程度愈高,能夠為相同 AKS 節點上的工作負載提供核心隔離。 您可以在這裡深入瞭解功能。 機密容器是此隔離的下一個步驟,它會使用基礎 AMD SEV-SNP 虛擬機器大小的記憶體加密功能。 這些虛擬機器是 DCa_cc 和 ECa_cc 大小,能夠向部署的 Pod 呈現硬體的根信任。
開始使用
若要開始並深入瞭解支援的案例,請參閱此處的 AKS 文件。