天天看點

在AKS上,用Kata Confidential Containers實作零信任部署

作者:譽天教育ICT認證教育訓練

Azure Kubernetes Service(AKS)上的、用Kata機密容器開源項目的機密容器即将登陸Azure。

對機密容器零信任

零信任雲架構是一種安全架構,它專注于維護安全和保護資料,假設不自動信任任何裝置或使用者,即使它們在網絡範圍内。

在雲托管的容器平台中,處理敏感個人身份資訊(PII)和知識産權(IP)的應用程式尋求增強的安全性和威脅控制。這是為了保護所處理的資料和運作的代碼免受已知和未知對手的攻擊。環境的最高隔離性和完整性通常由資料合規性和網絡安全團隊決定。

基于AMD的SEV-SNP硬體支援的可信執行環境(TEE)的機密虛拟機(VM)提供了底層核心功能,如使用中的代碼和資料的完整性、保護記憶體中的資料不受Azure operator的影響,以及通過認證進行遠端加密驗證,同時運作現有的未經修改的應用程式。

基于虛拟機的TEE可以運作完整的Linux核心,并可以輕松地實作原生運作未修改的應用程式,但與應用程式級别的飛地相比,信任邊界可能有所不同。為了實作像應用程式飛地一樣的隔離,并實作更進階别的VM管理者保護,AKS上的機密容器在每個pod的專用“子VM”中運作。每個子虛拟機都有自己的記憶體加密密鑰,具有AMD SEV-SNP保護,子虛拟機的生命周期與機密Kubernetes pod的生命周期相關聯。

通過使用嵌套虛拟化在這個隔離級别運作Kubernetes pod,客戶可以從與父VM和租戶OS管理者(該VM的運維人員)的應用程式隔離中受益,同時仍然滿足原生運作任何Linux容器的需要。

為了建立一個具有廣泛Kubernetes工作負載支援的生态系統,Kata Confidential Containers(CoCo)開源沙盒CNCF項目提供了一套理想的構模組化塊和安全結構,以實作以下安全目标:

——幫助保護資料不受運維人員(Azure租戶管理者、Kubernetes管理者)的影響。

——幫助保護資料免受雲提供商/營運商的攻擊。

在AKS上,用Kata Confidential Containers實作零信任部署

通過将工作負載與其他pod、主機VM OS和Kubernetes軟體隔離在一個AKS容器主機中,這種部署架構非常适合那些希望運作現有OCI相容容器而不會對現有DevOps實踐産生影響的開發人員。機密容器作為AKS代理節點的一部分運作,進而在DevOps和開發人員之間找到理想的平衡。

開源社群聯盟

Kata Confidential Containers(CoCo)項目的目标是在容器級别标準化機密計算,并簡化其在Kubernetes中的使用。這是為了讓Kubernetes使用者能夠使用熟悉的工作流和工具部署機密容器工作負載。還将Azure Container Instances(ACI)上的機密容器帶到社群,學習容器強制執行政策/完整認證和OCI鏡像快照與DM真實性強制執行。

為了提高産品透明度目标,并實作跨行業的開源軟體工作,Kata CoCo和Cloud-Hypervisor Virtual Machine Monitor(VMM)與Microsoft Hypervisor相結合,被選為AKS支援的基礎。AKS上的機密容器利用了基本的底層技術堆棧,該堆棧支援“用于Pod Sandboxing的AKS上Kata VM隔離容器”,但使用特定的Azure機密計算(ACC)VM大小。

随着機密計算逐漸成為主流,微軟将繼續通過加強安全性和隔離性來做出貢獻,以根據客戶和社群的學習來塑造未來的版本。

産品設計原則

AKS上的機密容器是根據客戶回報的原則設計的,并将随着需求的變化而變化。

——透明度:共享敏感應用程式的機密容器環境,你可以檢視并驗證它是否安全。可信計算基礎(TCB)的所有元件都是開源的。

——可審計性:客戶應能夠驗證和檢視CoCo環境包的哪個版本,包括Linux Guest OS和所有元件是最新的。微軟通過認證登入到客戶作業系統和容器運作時環境進行驗證,還釋出了客戶作業系統建構的安全雜湊演算法(SHA),以建構字元串可聽性和控制故事。

——可再現性:盡管很難獲得完整運作時環境的确切散列,但将提供一種OSS優先的方法,該方法具有文檔充分的建構指令。能夠驗證雲中正在運作的内容以及可供審計的内容。

——完全證明:TEE的任何組成部分都應由具有遠端驗證能力的CPU進行完全測量。AMD SEV-SNP處理器的硬體報告應通過證明聲明反映容器層和容器運作時配置哈希。應用程式可以在本地擷取硬體報告,包括反映Guest OS鏡像和容器運作時的報告。

——代碼完整性:通過客戶定義的容器和容器配置政策(如不可變政策和容器簽名),運作時強制始終可用。

——與operator隔離:安全設計對所有不受信任的方(包括客戶/租戶管理者)采取最低權限和最高隔離屏蔽。這包括強化現有的Kubernetes控制平面通路(kubelet)對機密pod的通路。

——易用性:支援所有未修改的Linux容器,并具有高度的Kubernetes特性一緻性。

通過這些設計原則并公開準許這些原則時,目标是将這些貢獻帶到社群項目中,如Kata CoCo和Cloud Hypervisor。

場景/用例

機密容器對于涉及敏感資料(例如,PII或合規性所需的任何具有強大安全性的資料)的部署場景很有吸引力。容器常見場景的一些示例如下:

——使用Apache Spark分析工作在銀行業進行欺詐模式識别,保護隐私的大資料分析。

——作為持續內建和持續部署(CI/CD)DevOps實踐的一部分,運作自托管GitHub運作程式以確定代碼簽名。

——機器學習,使用來自可信來源的加密資料集對ML模型進行推理和訓練,并且僅在機密容器環境内進行解密,以實作隐私保護ML推理。

——在零售和數字廣告等行業,作為多方計算的一部分,建立用于身份比對的大資料潔淨室。

——建立機密的計算零信任着陸區,以滿足應用程式遷移到雲的隐私規定。

常見問題解答

問:需要修改現有的容器嗎,還是選擇OSS項目包裝器來運作容器?

答:不需要。帶有任何程式設計語言的标準OCI相容容器将以未經修改的方式運作。

問:在AKS上運作此功能需要新的Azure虛拟機大小嗎?

答:是的。使用此功能需要新的具有機密計算能力的子VM大小DCA_CC_v5、ECA_CC_v5。

問:這些CoCo pod是在自己的安全環境或虛拟機中運作的嗎?

答:是的,機密pod在自己的TEE中運作,由唯一的記憶體加密密鑰保護。許多容器可以在單個虛拟機中運作,就像具有應用程式飛地的虛拟機一樣。

問:是否有Azure服務需要預設信任?

答:不是。隻有容器運作時元件和具有所需容器運作時的輕量級容器優化Linux核心才是信任邊界的一部分。

問:什麼是用于在AKS上運作機密容器的機密子VM?

答:嵌套虛拟化是一種允許在Azure虛拟機(VM)内運作虛拟機管理程式的功能。這有助于将子VM彼此隔離,并将其與父作業系統隔離。通過使用基于AMD SEV-SNP的硬體級别保護使這些嵌套虛拟機保密。

繼續閱讀