基于容器的虛擬化平臺提供了一種方式在隔離的實例中運行多個應用程序。容器技術可以為DevOps提供顯著的優勢,包括提高系統的擴展性、資源利用率和彈性。然而除下容器與主系統完全解耦,這種使用就會存在潛在的安全隱患。因此,這篇博文主要描述了為什么系統管理員應該密切關在容器中運行應用所采納的權限等級,以及用戶訪問主機系統的權限。
容器已經成為DevOps中的新熱點技術。特別是Docker公司,已經成為了提供容器技術服務的領頭公司。使用Docker平臺,應用程序極其依賴可以被打包進一個單元,也就是所謂的鏡像。隨后,Docker就可以運行這個鏡像的實例,每個鏡像的實例都是在駐留在容器中。
Docker正成為DevOps的代名詞。如果你還不熟悉容器的優勢的話,概括地說,它們包括了可使用的鏡像和易于使用的公共庫、鏡像版本,以及Docker的思想。(欲了解更多信息,請參見 devops.com上的Three Reasons We Use Docker)。
在談到大小時,容器具有很多優勢。不像虛擬機,一個容器不需要運行整個操作系統,或者對系統的硬件進行拷貝。容器僅僅只需要足夠的操作系統和硬件信息資源來運行它負責托管的應用。所以,容器所消耗的資源比虛擬機小很多,因此同一主機上可以跑的容器肯定比虛擬機多。
而在小化需要運行的容器上,開發者需要做好足夠的權衡。其中一個就是減少容器與系統之間的分離度。與此相反,虛擬機與主機的分離性比容器的更高。Docker用戶需要root用戶權限去運行容器,如果Docker用戶不知道容器中運行的是什么,這可能會引發問題。通常,那些repository都是未經過審核的,這意味著任何人都可以創建和上傳鏡像。顯然,對從互聯網上下載下來的容器給以太多的信任會引發安全問題。
共享命名空間的問題通常是Docker的大問題。命名空間是系統內核所創建的組,它通常會為不同源和區域指定不同的訪問級別。而究于擴展性,在Docker中并沒有為容器提供不同的命名空間——倘若有數百個容器在運行,那么每個容器都需要有獨立的命名空間。而且,如果一個容器想要共享存儲,那么所有共享這個存儲的命名空間必須使用顯式訪問。
在回應有關Docker的安全問題時,這里詳細討論了如何緩解Docker的安全問題。緩解方法的建議包括了限制直接訪問主機和在容器中運行應用的權限。
除了Doker容器的安全指導,還有其它在確保容器安全方面的建議。共享命名空間的一個潛在解決方案是使用Seccomp,它是一個進程處理工具。Daniel Walsh 在opensource.com上詳細地介紹了這項工作。
管理員必須清楚容器中運行的究是什么。從互聯網上下載來的鏡像應該仔細審核,然后才在敏感的環境中運行。一般規則,不像字面意義,容器不應是包含在容器內運行的應用程序。
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。