0
雷鋒網(wǎng)按:基礎(chǔ)設(shè)施即代碼(IaC)將成為本文重點(diǎn)討論的對象,它的出現(xiàn),源自云原生時代不僅是開發(fā)者體驗(yàn)的核心,也是補(bǔ)齊云原生體系的最后一塊版圖。
近年來,DevOps在云原生領(lǐng)域越來越朝著自動化方向演進(jìn)。基礎(chǔ)設(shè)施即代碼(IaC)現(xiàn)在通常用于啟動服務(wù)器、自動配置、設(shè)置存儲和跨服務(wù)應(yīng)用標(biāo)準(zhǔn)網(wǎng)絡(luò)功能。使用新的工具和能力來簡化整個應(yīng)用程序生命周期的操作,開發(fā)團(tuán)隊(duì)顯著提高了其部署的敏捷性。
但是,在這種新范式中,誰對安全負(fù)責(zé)?更多的工具提升了開發(fā)人員全周期的所有權(quán)。然而,應(yīng)用開發(fā)人員有很多事情要負(fù)責(zé)。此外,他們沒有一個完整的窗口來了解細(xì)粒度的漏洞、以及每天出現(xiàn)大量新的合規(guī)性要求。IT安全工程師通常不了解不擴(kuò)展的DevOps工具連續(xù)體的復(fù)雜性。如果沒有更好地協(xié)作,強(qiáng)大的云原生命令可能會失控,需要修復(fù)。
Oak9 的聯(lián)合創(chuàng)始人兼 CPO Om Vyas 在最近的采訪中,談?wù)摿怂麄儓F(tuán)隊(duì)如何應(yīng)對云原生部署環(huán)境下安全性的問題。按照他的說法,安全需要為IaC采用與DevOps相同的自動化策略。
云原生中的IaC問題
十年前的軟件交付方式與如今大有不同。部門之間往往是孤立的,IT和運(yùn)營部門只能管理本地部署的硬件。這使得工程師能夠使用防火墻鎖定一切以控制運(yùn)行時環(huán)境。同時,IT可以更直接地控制訪問、網(wǎng)絡(luò)策略、數(shù)據(jù)流和通信邊界。
快進(jìn)到如今的云原生架構(gòu),工程師擁有觸手可及的巨大能力。開發(fā)人員可以通過使用 Terraform 立即啟動像EC2這樣的實(shí)例,用編輯器管理Kubernetes上的計算集群,調(diào)用無服務(wù)或其他各種功能。在引入新功能時,如果基礎(chǔ)設(shè)施自動化正在改變現(xiàn)有架構(gòu),那么安全實(shí)施是什么?
保護(hù)IaC的一般方法
AWS、Azure 和 GCP 使啟動存儲、計算和網(wǎng)絡(luò)資源變得非常容易,但是前提是建立在不考慮IaC 的安全影響對開發(fā)團(tuán)隊(duì)再次造成困擾的可能性。例如,混淆彈性負(fù)載均衡器之間的細(xì)微差別可能會暴露敏感數(shù)據(jù)。當(dāng)然,一些組織正在構(gòu)建適當(dāng)?shù)?IaC 抽象和模塊。要做到這一點(diǎn),必須要對文化轉(zhuǎn)變、可觀測性和全周期發(fā)展進(jìn)行思考。
文化轉(zhuǎn)變
與大多數(shù) IT 變革一樣,提高安全性首先需要進(jìn)行文化轉(zhuǎn)變。技術(shù)是次要的,擁抱文化轉(zhuǎn)變需要增加程序員、DevOps、SRE 和安全專業(yè)人員之間的協(xié)作,以決定自主的領(lǐng)域。
文化轉(zhuǎn)變可能包括重新調(diào)整部署流程,或決定何時讓安全團(tuán)隊(duì)參與新功能的發(fā)布。它還可以包括制定新的代碼分析工具和工作流程標(biāo)準(zhǔn)化。
可觀測性
如果從根本上改變了應(yīng)用程序的架構(gòu),那么團(tuán)隊(duì)需要知道哪些安全領(lǐng)域受到了影響。一個棘手的部分是在不增加開發(fā)人員工作流程的情況下,添加更多安全檢查點(diǎn),關(guān)鍵就在于實(shí)現(xiàn)自動化。
全周期開發(fā)
開發(fā)人員繼續(xù)圍繞代碼庫承擔(dān)延長生命周期的責(zé)任,有人稱這種趨勢為全周期發(fā)展。在應(yīng)用生命周期內(nèi),為開發(fā)人員提供自主權(quán)確實(shí)會帶來生產(chǎn)力優(yōu)勢。它可以減少對外部批準(zhǔn)的需求并實(shí)現(xiàn)更快的軟件更改。
但是,這種自主權(quán)并不意味著其他人不參與安全過程。安全的責(zé)任不應(yīng)該僅僅在于開發(fā)人員和 SRE 團(tuán)隊(duì),安全是整個組織的共同責(zé)任。
安全和IaC的未來
對于改變底層架構(gòu)的新功能,團(tuán)隊(duì)需要提前了解潛在的安全影響和風(fēng)險因素。例如,在添加分析儀表板時,如何知道無服務(wù)功能具有對數(shù)據(jù)庫的正確訪問級別?是公開的嗎?是靜態(tài)加密的嗎?有適當(dāng)?shù)拿荑€管理系統(tǒng)嗎?如何確保每次更改都不會產(chǎn)生額外風(fēng)險?
圍繞這些因素提高安全意識并不是可以馬虎的事情。與DevOps的實(shí)踐類似,采用安全思維往往在最后一環(huán)才能感受其帶來的巨大收益。此外,隨著多云采用率的提高,如果企業(yè)想要在所有軟件部門應(yīng)用與云無關(guān)的一致保護(hù),則需要實(shí)時響應(yīng)自身的安全理念。
最后再提一點(diǎn),隨著這種基礎(chǔ)設(shè)施自動化的持續(xù)演進(jìn),預(yù)計未來很快還會從IaC 轉(zhuǎn)向更多低代碼/無代碼的能力,這通常稱為 ClickOps。而有可能將是未來新的發(fā)展方向。
(雷鋒網(wǎng)編譯)雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。