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