新聞中心
容器安全解決方案需要考慮不同技術(shù)棧和容器生命周期的不同階段。 – 1.容器操作系統(tǒng)與多租戶 – 2.容器內(nèi)容(使用可信源) – 3.容器注冊 (容器鏡像加密訪問) – 4.構(gòu)建過程安全 – 5.控制集群中可部署的內(nèi)容 – 6.容器編排:加強容器平臺安全 – 7.網(wǎng)絡(luò)隔離 – 8.存儲 – 9.API 管理, 終端安全和單點登錄 (SSO) – 10.角色和訪問控制管理

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供蒼梧網(wǎng)站建設(shè)、蒼梧做網(wǎng)站、蒼梧網(wǎng)站設(shè)計、蒼梧網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、蒼梧企業(yè)網(wǎng)站模板建站服務(wù),十年蒼梧做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
容器提供了一種簡單的應(yīng)用程序打包方法將它們無縫地從開發(fā)、測試環(huán)境部署到生產(chǎn)環(huán)境。它有助于確保各種環(huán)境中的一致性,包括物理服務(wù)器、虛擬機(VM)或私有或公共云。領(lǐng)先的組織基于這些好處迅速采用容器,以便輕松地開發(fā)和管理增加業(yè)務(wù)價值的應(yīng)用程序。
企業(yè)應(yīng)用需要強壯的安全性,任何在容器中運行基礎(chǔ)服務(wù)的人都會問:“容器是安全的嗎?”、“可以讓我們的應(yīng)用程序信任容器嗎?”
保護容器非常類似于確保任何正在運行的進程。在部署和運行容器之前,您需要考慮整個解決方案技術(shù)棧的安全性。您還需要考慮在應(yīng)用程序和容器的完整生命周期的安全性。
請嘗試在這 10 個方面加強容器的不同層次、不同技術(shù)棧和不同生命周期階段的安全性。
1. 容器操作系統(tǒng)與多租戶
對于開發(fā)人員來說,容器使得他們更容易地構(gòu)建和升級應(yīng)用程序,它可以作為一個應(yīng)用單元的被依賴,通過在共享主機上部署啟用多租戶應(yīng)用程序來最大限度地利用服務(wù)器資源。容器很容易在單個主機上部署多應(yīng)用程序,并根據(jù)需要開啟和關(guān)閉單個容器。為了充分利用這種打包和部署技術(shù),運維團隊需要正確的運行容器環(huán)境。運維人員需要一個操作系統(tǒng),該系統(tǒng)可以在邊界處保護容器,使主機內(nèi)核與容器隔離并確保容器彼此之間安全。
容器是隔離和約束資源的 Linux 進程,使您能夠在共享宿主內(nèi)核中運行沙盒應(yīng)用程序。您保護容器的方法應(yīng)該與確保 Linux 上任何正在運行的進程的安全方法相同。放棄特權(quán)是重要的,目前仍然是最佳實踐。更好的方法是創(chuàng)建盡可能少的特權(quán)容器。容器應(yīng)該作為普通用戶運行,而不是 root 用戶。接下來,利用 Linux 中可用的多種級別的安全特性確保容器的安全: Linux 命名空間,安全增強的Linux(SELinux), cgroups,capabilities 和安全計算模式(seccomp)。
2. 容器內(nèi)容(使用可信源)
當(dāng)說到安全性的時候,對于容器內(nèi)容來說意味著什么呢?。一段時間以來,應(yīng)用程序和基礎(chǔ)設(shè)施都是由現(xiàn)成的組件組成的。很多都來自于開源軟件,例如如 Linux 操作系統(tǒng),Apache Web 服務(wù)器,紅帽 JBoss 企業(yè)應(yīng)用平臺,PostgreSQL 和 Node.js。基于容器的各種軟件包版本現(xiàn)在一應(yīng)俱全,所以你不需要建立自己。但是,與從外部源下載的任何代碼一樣,您需要知道包的起源、它們是由誰創(chuàng)建,以及它們內(nèi)部是否存在惡意代碼。
3. 容器注冊 (容器鏡像加密訪問)
你的團隊構(gòu)建容器的時候基于下載的公共容器鏡像, 所以對它的訪問管理和更新下載是管理的關(guān)鍵,需以同樣的方式管理容器鏡像、內(nèi)建的鏡像及其他類型的二進制文件。許多私有倉庫注冊服務(wù)器支持存儲容器鏡像。選擇一個私有的、存儲使用的容器鏡像自動化策略的注冊服務(wù)器。
4. 構(gòu)建過程安全
在一個容器化的環(huán)境里,軟件的構(gòu)建是整個生命周期的一個階段,應(yīng)用程序代碼需要與運行庫集成。管理此構(gòu)建過程是確保軟件棧安全的關(guān)鍵。堅持“一次構(gòu)建,到處部署(build once, deploy everywhere)”的理念,確保構(gòu)建過程的產(chǎn)品正是生產(chǎn)中部署的產(chǎn)品。這一點對于維護容器持續(xù)穩(wěn)定也非常重要,換句話說,不要為運行的容器打補?。欢菓?yīng)該重新構(gòu)建、重新部署它們。 無論您是在高度規(guī)范的行業(yè)中工作,還是僅僅想優(yōu)化團隊的工作,需要設(shè)計容器鏡像的管理和構(gòu)建過程,以利用容器層實現(xiàn)控制分離,從而使:
運維團隊管理基礎(chǔ)鏡像
架構(gòu)團隊管理中間件、運行時、數(shù)據(jù)庫和其它解決方案
開發(fā)團隊僅僅專注于應(yīng)用層和代碼
最后,對定制的容器簽名,這樣可以確保它們在構(gòu)建和部署環(huán)節(jié)之間不會被篡改。
5. 控制集群中可部署的內(nèi)容
為了防備在構(gòu)建過程中發(fā)生任何問題,或者在部署一個鏡像后發(fā)現(xiàn)漏洞,需要增加以自動化的、基于策略的部署的另一層安全性。
讓我們看一下構(gòu)建應(yīng)用程序的三個容器鏡像層:核心層(core)、中間件層(middleware)和應(yīng)用層(application)。一個問題如果在核心鏡像被發(fā)現(xiàn),鏡像會重新構(gòu)建。一旦構(gòu)建完成,鏡像將被推入容器平臺注冊服務(wù)器。平臺可以檢測到鏡像發(fā)生了變化。對于依賴于此鏡像并有定義觸發(fā)器的構(gòu)建,該平臺將自動重建應(yīng)用程序并整合已經(jīng)修復(fù)的庫。
一旦構(gòu)建完成,鏡像將被推入容器平臺的內(nèi)部注冊服務(wù)器。內(nèi)部注冊服務(wù)器中鏡像的變化能立即檢測到,通過應(yīng)用程序中定義的觸發(fā)器自動部署更新鏡像,確保生產(chǎn)中運行的代碼總是與最近更新的鏡像相同。所有這些功能協(xié)同工作,將安全功能集成到您的持續(xù)集成和持續(xù)部署(CI / CD)過程中。
6. 容器編排:加強容器平臺安全
當(dāng)然,應(yīng)用程序很少在單個容器中交付。即使是簡單的應(yīng)用程序通常有一個前端,后端和數(shù)據(jù)庫。在容器中部署現(xiàn)代微服務(wù)應(yīng)用,通常意味著多容器部署,有時在同一主機上有時分布在多個主機或節(jié)點,如圖所示。
當(dāng)規(guī)?;芾砣萜鞑渴饡r,您需要考慮:
哪些容器應(yīng)該部署到哪個主機上?
哪個主機容量更大?
哪些容器需要相互訪問?他們將如何相互發(fā)現(xiàn)?
如何控制對共享資源的訪問和管理,比如網(wǎng)絡(luò)和存儲?
如何監(jiān)控容器健康狀態(tài)?
如何自動擴展應(yīng)用能力以滿足需求?
如何使開發(fā)者在自助服務(wù)的同時滿足安全需求?
考慮到開發(fā)人員和運維人員擁有的廣泛能力,強大的基于角色的訪問控制是容器平臺的關(guān)鍵元素。例如,編排管理服務(wù)器是訪問的中心點,應(yīng)該得到最高級別的安全檢查。API 是大規(guī)模自動化容器管理的關(guān)鍵,用于驗證和配置容器、服務(wù)和復(fù)制控制器的數(shù)據(jù);對傳入的請求執(zhí)行項目驗證;并調(diào)用其他主要系統(tǒng)組件上的觸發(fā)器。
加強Linux 容器安全的十大方面加強Linux 容器安全的十大方面
7. 網(wǎng)絡(luò)隔離
在容器部署現(xiàn)代微服務(wù)應(yīng)用程序往往意味著在多個節(jié)點分布式部署多個容器。考慮到網(wǎng)絡(luò)防御,您需要一種在集群中隔離應(yīng)用程序的方法。
一個典型的公共云服務(wù),例如Google Container Engine (GKE),Azure Container Services, 或者 Amazon Web Services (AWS) Container Service,都是單租戶服務(wù)。它們允許在您啟動的 VM 集群上運行容器。為了實現(xiàn)多租戶容器安全,您需要一個容器平臺,允許您選擇單個集群并將流量分段,以隔離該集群中的不同用戶、團隊、應(yīng)用程序和環(huán)境。
通過網(wǎng)絡(luò)命名空間,每個容器集合(稱為“POD”)獲得自己的IP和端口綁定范圍,從而在節(jié)點上隔離 POD 網(wǎng)絡(luò)。
默認(rèn)情況下,來自不同命名空間(項目)的 POD 不能將包發(fā)送到或接收來自不同項目的 POD 、服務(wù)的數(shù)據(jù)包,除了下文所述的選項。您可以使用這些特性來隔離集群中的開發(fā)人員、測試和生產(chǎn)環(huán)境;然而,IP 地址和端口的這種擴展使得網(wǎng)絡(luò)變得更加復(fù)雜??梢酝顿Y一些工具處理這種復(fù)雜性。首選的工具是采用軟件定義網(wǎng)絡(luò)(SDN)容器平臺,它提供統(tǒng)一的集群網(wǎng)絡(luò),保證整個集群的容器之間的通信。
8. 存儲
對于有狀態(tài)和無狀態(tài)的應(yīng)用程序來說,容器是非常有用的。 保護存儲是保證有狀態(tài)服務(wù)的關(guān)鍵要素。容器平臺應(yīng)提供多樣化的存儲插件,包括網(wǎng)絡(luò)文件系統(tǒng)(NFS),AWS Elastic Block Stores(EBS,彈性塊存儲),GCE Persistent 磁盤,GlusterFS,iSCSI,RADOS(CEPH)、Cinder 等等。
一個持久卷(PV)可以安裝在由資源提供者支持的任何主機。供應(yīng)商將有不同的能力,每個 PV 的訪問模式可以設(shè)置為特定卷支持的特定模式。例如,NFS 可以支持多個 讀/寫的客戶端,但一個特定的 NFS PV 可以在服務(wù)器上僅作為只讀輸出。每個 PV 有它自己的一套訪問模式,定義特定 PV 的性能指標(biāo),例如ReadWriteOnce, ReadOnlyMany, 和 ReadWriteMany。
9. API 管理, 終端安全和單點登錄 (SSO)
保護應(yīng)用程序安全包括管理應(yīng)用程序和 API 身份驗證和授權(quán)。 Web SSO 功能是現(xiàn)代應(yīng)用程序的關(guān)鍵部分。當(dāng)開發(fā)者構(gòu)建他們自己的應(yīng)用時,容器平臺可以提供各種容器服務(wù)給他們使用。
API 是微服務(wù)應(yīng)用的關(guān)鍵組成部分。微服務(wù)應(yīng)用具有多個獨立的 API 服務(wù),這導(dǎo)致服務(wù)端點的擴張,因此需要更多的治理工具。推薦使用 API 管理工具。所有 API 平臺都應(yīng)該提供各種 API 認(rèn)證和安全的標(biāo)準(zhǔn)選項,它們可以單獨使用或組合使用,發(fā)布證書和控制訪問。這些選項包括標(biāo)準(zhǔn)的 API 密鑰、應(yīng)用ID、密鑰對和 OAuth 2.0。
10. 角色和訪問控制管理(Cluster Federation)
2016年7月,Kubernetes 1.3 介紹了 Kubernetes Federated Cluster。這是一個令人興奮的新功能,目前在 Kubernetes 1.6 beta 。
在公共云或企業(yè)數(shù)據(jù)中心場景中,F(xiàn)ederation 對于跨集群部署和訪問應(yīng)用服務(wù)是很有用的。多集群使得應(yīng)用程序的高可用性成為可能,例如多個區(qū)域、多個云提供商(如AWS、Google Cloud 和 Azure)實現(xiàn)部署或遷移的通用管理。
在管理集群聯(lián)邦時,必須確保編排工具在不同的部署平臺實例中提供所需的安全性。與以往一樣,身份驗證和授權(quán)是安全的關(guān)鍵 —— 能夠安全地將數(shù)據(jù)傳遞給應(yīng)用程序,無論它們在何處運行,在集群中管理應(yīng)用程序多租戶。
Kubernetes 擴展了集群聯(lián)邦包括支持聯(lián)邦加密,聯(lián)邦命名空間和對象入口。
本文題目:加強Linux容器安全10條建議
標(biāo)題網(wǎng)址:http://m.fisionsoft.com.cn/article/cdspjhi.html


咨詢
建站咨詢
