摘要:將成安全評估如漏洞掃描加入持續(xù)集成中,使其成為構(gòu)建流程的一部分。持續(xù)集成應(yīng)確保只使用審查通過的代碼來構(gòu)建鏡像。我們推薦這篇文章中提到的安全實(shí)踐,將的靈活配置能力加入到持續(xù)集成中,自動(dòng)將安全性無縫融合到整個(gè)流程中。
編者按:本文是由 Aqua Security 的Amir Jerbi 和Michael Cherny 所寫,基于他們從本地和云端上收集到的實(shí)際數(shù)據(jù),描述了Kubernetes 部署的最佳安全實(shí)踐。
Kubernetes提供了許多可以極大地提高應(yīng)用程序安全性的選項(xiàng)。配置它們要求你熟悉 Kubernetes 以及其部署的安全要求。
我們在這里強(qiáng)調(diào)的最佳實(shí)踐與容器生命周期相匹配:構(gòu)建、分發(fā)和運(yùn)行,并專門為Kubernetes量身打造。我們在運(yùn)行在Google云平臺的kubernetes上使用了這些安全實(shí)踐。
以下是我們部署安全的Kubernetes應(yīng)用的建議:
◆ 確保鏡像沒有漏洞運(yùn)行有漏洞的容器使你的環(huán)境會(huì)遭受損害的風(fēng)險(xiǎn)。許多攻擊可以簡單地通過將軟件升級為沒有漏洞的版本來避免。
實(shí)現(xiàn)Continuous Security Vulnerability Scanning (持續(xù)安全漏洞掃描)——容器可能包括含有已知漏洞(CVE)的過時(shí)包。新的漏洞每天都會(huì)發(fā)布,所以這不是一個(gè)“一次性”的工作,對鏡像持續(xù)進(jìn)行安全評估是至關(guān)重要的。
定期對環(huán)境進(jìn)行安全更新,一旦發(fā)現(xiàn)運(yùn)行中容器的漏洞,你應(yīng)該及時(shí)更新鏡像并重新部署容器。盡量避免直接更新(例如, ‘a(chǎn)pt-update’ )到正在運(yùn)行的容器,因?yàn)檫@樣打破了鏡像與容器的對應(yīng)關(guān)系。
使用Kubernetes滾動(dòng)升級功能升級容器非常簡單,該功能允許通過升級鏡像到最新版本來逐步更新正在運(yùn)行的容器。
◆ 確保在你的環(huán)境中只使用授權(quán)鏡像如果無法保證只運(yùn)行符合組織策略的鏡像,那么組織會(huì)面臨運(yùn)行脆弱甚至惡意容器的危險(xiǎn)。從未知的來源下載和運(yùn)行鏡像是危險(xiǎn)的,它相當(dāng)于在生產(chǎn)服務(wù)器上運(yùn)行未知服務(wù)商的軟件,所以千萬別這樣做!
使用私有鏡像存儲你的合法鏡像,這樣能大量減少可能進(jìn)入到你的環(huán)境的鏡像數(shù)量。將成安全評估(如漏洞掃描)加入持續(xù)集成(CI)中,使其成為構(gòu)建流程的一部分。
持續(xù)集成應(yīng)確保只使用審查通過的代碼來構(gòu)建鏡像。當(dāng)鏡像構(gòu)建成功后,要對它進(jìn)行安全漏洞掃描,然后只有當(dāng)沒有發(fā)現(xiàn)問題時(shí),鏡像才能被推送私有鏡像倉庫。在安全評估中失敗的鏡像不應(yīng)該被推送到鏡像倉庫中。
Kubernetes鏡像授權(quán)插件的工作已經(jīng)完成(預(yù)計(jì)隨kubernetes 1.4發(fā)布)。該插件允許阻止未授權(quán)鏡像的分發(fā)。具體請查看此PR (https://github.com/kubernetes...)。
◆ 限制對Kubernetes 節(jié)點(diǎn)的直接訪問應(yīng)該限制SSH登陸Kubernetes節(jié)點(diǎn),減少對主機(jī)資源未授權(quán)的訪問。應(yīng)該要求用戶使用“ kubectl exec ”命令,此命令能夠在不訪問主機(jī)的情況下直接訪問容器環(huán)境。
你可以使用kubernetes授權(quán)插件來進(jìn)一步控制用戶對資源的訪問。它允許設(shè)置對指定命名空間、容器和操作的細(xì)粒度訪問控制規(guī)則。
◆ 創(chuàng)建資源間的管理界限限制用戶權(quán)限的范圍可以減少錯(cuò)誤或惡意活動(dòng)的影響。Kubernetes 命名空間允許將資源劃分為邏輯命名組。在一個(gè)命名空間中創(chuàng)建的資源對其他命名空間是隱藏的。
默認(rèn)情況下,用戶在Kubernetes 集群中創(chuàng)建的每個(gè)資源運(yùn)行在名稱為“default”的默認(rèn)空間內(nèi)。你也可以創(chuàng)建額外的命名空間并附加資源和用戶給它們。你可以使用Kubernetes 授權(quán)插件來創(chuàng)建策略,以便將不同用戶的訪問請求隔離到不同的命名空間中。
例如:以下策略將允許 ‘a(chǎn)lice’ 從命名空間 ‘fronto’ 讀取pods。
◆ 定義資源配額運(yùn)行沒有資源限制的容器會(huì)將你的系統(tǒng)置于DoS或被其他租戶干擾的風(fēng)險(xiǎn)中。為了防止和最小化這些風(fēng)險(xiǎn),你應(yīng)該定義資源配額。
默認(rèn)情況下,Kubernetes 集群中的所有資源沒有對CPU 和內(nèi)存的使用限制。你可以創(chuàng)建資源配額策略,并附加到Kubernetes命名空間中來限制Pod對CPU和內(nèi)存的使用。
下面的例子將限制命名空間中Pod 的數(shù)量為4個(gè),CPU使用在1和2之間,內(nèi)存使用在1GB 和 2GB 之間。
compute-resources.yaml:
分配資源配額到命名空間:
◆ 實(shí)現(xiàn)網(wǎng)絡(luò)分段在相同的Kubernetes集群上運(yùn)行不同的應(yīng)用程序會(huì)導(dǎo)致惡意程序攻擊其他應(yīng)用程序的風(fēng)險(xiǎn)。所以網(wǎng)絡(luò)分割對確保容器只與那些被允許的容器進(jìn)行通信很重要。
Kubernetes 部署的挑戰(zhàn)之一是創(chuàng)建Pod,服務(wù)和容器之間的網(wǎng)絡(luò)分段。原因在于容器網(wǎng)絡(luò)標(biāo)識符(IP地址)動(dòng)態(tài)的“天性”,以及容器可以在同一節(jié)點(diǎn)或節(jié)點(diǎn)間進(jìn)行通信的事實(shí)。
谷歌云平臺的用戶受益于自動(dòng)防火墻規(guī)則,能夠防止跨集群通信。類似的實(shí)現(xiàn)可以使用網(wǎng)絡(luò)防火墻或SDN解決方案部署。這方面的工作由Kubernetes 網(wǎng)絡(luò)特別興趣小組(Special Interest Group)完成,這將大大提高 pod到pod 的通信策略。
新的網(wǎng)絡(luò)策略API應(yīng)該解決 Pod之間創(chuàng)建防火墻規(guī)則的需求,限制容器化可以進(jìn)行的網(wǎng)絡(luò)訪問。
下面展示了只允許前端(frontend)Pod訪問后端(backend)Pod的網(wǎng)絡(luò)策略:
點(diǎn)擊這里(http://blog.kubernetes.io/201...)閱讀更多網(wǎng)絡(luò)策略的內(nèi)容。
◆ 將安全環(huán)境應(yīng)用到你的Pods和容器中當(dāng)設(shè)計(jì)你的容器和 pods時(shí),確保為你的pods,容器和存儲卷配置安全環(huán)境。安全環(huán)境是定義在yaml文件中的一項(xiàng)屬性。它控制分配給 pod/容器/存儲卷的安全參數(shù)。一些重要的參數(shù)是:
以下是一個(gè)具有安全環(huán)境參數(shù)的pod 定義示例:
◆ 記錄所有的事情Kubernetes提供基于集群的日志,允許將容器活動(dòng)日志記錄到一個(gè)日志中心。當(dāng)集群被創(chuàng)建時(shí),每個(gè)容器的標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤都可以通過運(yùn)行在每個(gè)節(jié)點(diǎn)上的Fluentd 服務(wù)記錄到Stackdriver或Elasticsearch中,然后使用Kibana進(jìn)行查看。
◆ 總結(jié)Kubernetes 對創(chuàng)建安全部署提供多種選擇,沒有適合所有情況的萬能解決方案,所以熟悉這些安全選項(xiàng)、了解它們?nèi)绾翁岣邞?yīng)用程序安全性是很重要的。
我們推薦這篇文章中提到的安全實(shí)踐,將Kubernetes的靈活配置能力加入到持續(xù)集成中,自動(dòng)將安全性無縫融合到整個(gè)流程中。
時(shí)速云每兩周將于微信群進(jìn)行技術(shù)分享,感興趣的小伙伴可以添加微信號(tenxcloud6)時(shí)速云小助手,然后我們會(huì)拉您進(jìn)群
本文由時(shí)速云翻譯,如若轉(zhuǎn)載,需注明轉(zhuǎn)載自“時(shí)速云”
原文鏈接: http://blog.kubernetes.io/201...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/32494.html
摘要:將成安全評估如漏洞掃描加入持續(xù)集成中,使其成為構(gòu)建流程的一部分。持續(xù)集成應(yīng)確保只使用審查通過的代碼來構(gòu)建鏡像。我們推薦這篇文章中提到的安全實(shí)踐,將的靈活配置能力加入到持續(xù)集成中,自動(dòng)將安全性無縫融合到整個(gè)流程中。 編者按:本文是由 Aqua Security 的Amir Jerbi 和Michael Cherny 所寫,基于他們從本地和云端上收集到的實(shí)際數(shù)據(jù),描述了Kubernetes...
摘要:今天的文章由來自的和撰寫,在不同用戶案例中搜集到的數(shù)據(jù)基礎(chǔ)上,描述了的安全最佳實(shí)踐。在谷歌上,我們的用來部署我們的服務(wù)。實(shí)施連續(xù)安全缺陷掃描容器可能包含過時(shí)的已知缺陷的程序包。谷歌云平臺的用戶能夠從自動(dòng)防火墻規(guī)則中受益,避免跨集群交流。 今天的文章由來自 Aqua Security 的 Amir Jerbl 和 Micheal Chemy 撰寫,在不同用戶案例中搜集到的數(shù)據(jù)基礎(chǔ)上,描述...
摘要:今年年初,由于控制臺中的配置錯(cuò)誤,特斯拉被一個(gè)惡意挖掘加密貨幣的軟件所感染。為了幫助您完成這項(xiàng)工作,本文將為您介紹項(xiàng)安全最佳實(shí)踐。授權(quán)失敗可能意味著攻擊者試圖濫用被盜憑據(jù)。 上個(gè)月,全球最受歡迎的容器編排引擎Kubernetes,被爆出首個(gè)嚴(yán)重的安全漏洞,使得整個(gè)Kubernetes生態(tài)發(fā)生震蕩。該漏洞(CVE-2018-1002105)使攻擊者能夠通過Kubernetes API服務(wù)...
摘要:安全的云元數(shù)據(jù)訪問該建議指出,敏感的元數(shù)據(jù)有時(shí)可能被盜或被濫用,但未能概述何時(shí)或如何的條件。雖然上篇文章指出具有元數(shù)據(jù)隱藏的功能,但值得注意的是,在最開始泄露憑據(jù)的服務(wù),正是元數(shù)據(jù)。我還認(rèn)為云提供商不應(yīng)該將憑證嵌入到可通過訪問的元數(shù)據(jù)中。 在上篇文章里,我們分享了CNCF為廣大Kubernetes用戶建議的9項(xiàng)Kubernetes安全最佳實(shí)踐,分享了用戶使用Kubernetes管理集群...
摘要:的元數(shù)據(jù)隱藏功能會(huì)更改集群部署機(jī)制以避免此暴露,我們建議使用它直到有永久解決方案。授權(quán)失敗可能意味著攻擊者試圖濫用被盜的憑據(jù)。年中國論壇提案征集現(xiàn)已開放論壇讓用戶開發(fā)人員從業(yè)人員匯聚一堂,面對面進(jìn)行交流合作。 作者:StackRox產(chǎn)品經(jīng)理Connor Gilbert 上個(gè)月,Kubernetes(世界上最受歡迎的容器編排器)生態(tài)系統(tǒng)因發(fā)現(xiàn)Kubernetes的第一個(gè)主要安全漏洞而動(dòng)搖...
閱讀 1176·2023-04-26 00:34
閱讀 3348·2023-04-25 16:47
閱讀 2110·2021-11-24 11:14
閱讀 3093·2021-09-26 09:55
閱讀 3683·2019-08-30 15:56
閱讀 3211·2019-08-29 16:57
閱讀 1903·2019-08-26 13:38
閱讀 2663·2019-08-26 12:22