Kubernetes的零信任基礎架構
譯文?譯者 | 胥磊
審校 | 孫淑娟
近年來,安全模型也得到了越來越多的關注,特別是隨著2019年新型冠狀病毒的爆發,其更是迅速成為所有人關注的焦點。突如其來的居家使很多公司的工作模式從現場辦公向遠程或混合模式轉變。零信任安全就成為這些準備向遠程或混合辦公模式轉變的公司關注對象,同樣其他機構,平臺以及基礎設施也都需要關注這些安全原則,特別是對于部署了Kubernetes的組織,采用零信任架構對于確保其所有環境的安全性是至關重要的。
Kubernetes安全挑戰
如今各個行業都承受著無處不在的壓力,他們需要IT公司能夠向其交付運行更快,效率更高,規模更大的軟件。為了尋求強大的可移植性和靈活性,許多IT公司都已經轉向使用Kubernetes (K8S)來滿足這些市場需求。同時也要看到雖然K8S是IT公司高效,大規模交付軟件的優秀解決方案,但其本身也存在安全挑戰和漏洞。僅僅因為 Kubernetes 是一個相對較新的系統,它就成為對網絡攻擊者來說頗具吸引力的獵物,再加上其操作模式的動態特性,如果不采取必要的安全措施,很容易給壞人留下滲透的空間。
Shadowserver 基金會的研究人員發現,僅今年一年就有38萬臺開放的 Kubernetes API 服務器暴露在互聯網上。雖然這些服務器目前還只是被識別為暴露并沒有受到攻擊,但這個驚人數字的背后隱藏著 API 服務器的脆弱性和潛在的危險性。而事實也是如此,Salt Security 的2022年 API 安全狀態顯示,34% 的受調查企業并沒有 API 安全策略,盡管其中95% 的企業在過去12個月中 API 安全受到威脅。
零信任:Kubernetes 的安全救星?
面對這種可怕的局面,行業需要有一種新的解決方案來加強Kubernetes的部署,由此引發的另外一個問題就是,如何在確保強大的安全態勢的同時,還能繼續發揮K8S的眾多優勢。對許多人來說答案很明確--那就是零信任安全。
什么是零信任安全?
零信任安全模型是 Forrester 在2009年首次提出的,一經提出,這個開創性的概念就徹底顛覆了網絡安全的標準?,F有的傳統安全模型是“信任,但要驗證”,而零信任安全則改變了這種理念,取而代之的是“永遠不要信任,始終要驗證”,這就意味著所有用戶和設備必須不加區分地持續檢查和驗證。
過去傳統的安全模型都是為了確保邊緣的安全。一旦用戶通過驗證,他們就被授予進入網絡的權限,而只要他們進入了網絡所有操作通常都會受到信任!而零安全信任則意味著永遠不會有完全信任的時刻。恰恰相反其總是假設用戶和設備受到了威脅,必須通過不斷地進行授權、身份驗證和認證,才能保持與網絡的連接或采取任何操作。通過這種方式,零信任安全可以幫助組織始終保持謹慎,永遠不放松警惕,從而防御壞人的滲透。
Kubernetes 的零信任架構
零信任安全為Kubernetes的安全挑戰提供了真正的解決方案,而實現合規本身也帶來了新的挑戰。這里著重需要指出的是零信任安全只是一組目標而不是一個精確的工具,因此有許多不同的方法可以實現零信任體系結構。
那么,如何將零信任原則應用于 Kubernetes呢?下面從如何保護 Kubernetes API 服務器開始,服務器是每個 Kubernetes 集群控制層面的核心。因為這個 API 服務器用于控制所有 Kubernetes 對象,所以確保安全的 API 訪問是保護受控 Kubernetes 訪問的安全基石,從而實現零信任 Kubernetes。
為了控制和保護 API 服務器,首先就要控制所有的輸入和傳輸出的流量,這些可以通過傳輸層安全協議(Transport Layer Security,TLS)來完成。一旦所有 API 服務器通信都得到保護,Kubernetes 就可以提供用來實現零信任安全的鉤子(Hooks)。這里主要有四種類型的鉤子:身份驗證,授權,準入控制,審計和日志記錄。它們對成功實現 Kubernetes 的零信任架構至關重要。
身份驗證
為了堅持 Kubernetes 的零信任安全原則,第一步就是要確保所有用戶和服務帳戶都定期進行身份驗證,這意味著在執行任何 API 調用之前需要進行身份驗證。為了實現這種身份驗證,可以使用如下幾種安全模型和插件,如客戶端證書、HTTP 基本身份驗證和令牌。另外零信任模型還建議使用多維度身份驗證 (MFA) 以進一步提升安全性。
授權
除了必要的身份驗證之外,還需要所有用戶和服務帳戶必須具有授權,這也是零信任安全的一個關鍵原則。為了保持強健的安全性,所有的用戶操作都應該受到限制,即使在身份驗證之后也是如此。換句話說就是不允許用戶不受限制的執行所有任務,而是要先授予他們足夠的訪問權限,然后來完成他們要執行的任務。
當談到零信任Kubernetes時,所有訪問Kubernetes集群的用戶和服務帳戶都不應該被允許執行任何操作。相反 Kubernetes 的請求只有在用戶(通過身份認證)有執行請求任務的明確授權時才被允許執行。因此每個請求都應該指定請求者的用戶名、被請求的操作以及該操作的效果。
準入控制
保持對所有用戶和操作的可見性是零信任模型的另一個重要支柱。這就是為什么準入控制器成為了 Kubernetes 零信任架構的關鍵組件。使用準入控制器后,組織就可以管理所有的要創建、修改、刪除或連接到Kubernetes 對象的請求。內置準入控制器可以協助組織實施操作并執行其策略,而動態準入控制器可以允許他們實時修改請求。至于更細致的安全控制方法,就是在系統中使用多個準入控制器,而且許多控制器是與 Kubernetes 部署相兼容的,例如 ResourceQuota 和 LimitRanger。
審計和日志
無論哪種安全態勢,審計都是其彈性的基本組成部分。審計允許組織監控在 Kubernetes 集群中那些由用戶、應用程序甚至控制層面執行的所有操作。然后,由團隊決定在哪里記錄這些審計事件,可以保存在本地文件系統或外部日志系統中。適當的審計和日志記錄在確保 Kubernetes 基礎設施符合政府的政策方面也發揮著關鍵作用。所以在不同的組織、機構和平臺中,零信任安全正成為決定網絡安全健康的關鍵角色,Kubernetes當然也不例外。
譯者介紹
胥磊,51CTO社區編輯,某頭部電商技術副總監,關注Java后端開發,技術管理,架構優化,分布式開發等領域。
原文標題:??Zero Trust Infrastructure for Kubernetes???,作者:Meredith Shubel?