Docker容器技術(shù)與應(yīng)用Docke安全運維管理_第1頁
Docker容器技術(shù)與應(yīng)用Docke安全運維管理_第2頁
Docker容器技術(shù)與應(yīng)用Docke安全運維管理_第3頁
Docker容器技術(shù)與應(yīng)用Docke安全運維管理_第4頁
Docker容器技術(shù)與應(yīng)用Docke安全運維管理_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

《Docker容器技術(shù)與應(yīng)用項目教程》高等職業(yè)技術(shù)教育計算機有關(guān)專業(yè)目錄項目10Docke安全運維管理10.1項目陳述10.2必備知識10.3項目實施學(xué)習(xí)目的?掌握Docker容器,鏡像地安全。?掌握Docker自身地漏洞與缺陷。?掌握Docker安全機制。?掌握Docker日志管理方法。項目10Docke安全運維管理在大多數(shù)情況下,啟動Docker容器時都以root用戶權(quán)限運行。用戶使用root權(quán)限可以進行地操作包括訪問所有信息,修改任何內(nèi)容,關(guān)閉機器,結(jié)束進程,以及安裝各種軟件等。容器安全性問題地根源在于容器與宿主機享內(nèi)核,如果容器應(yīng)用導(dǎo)致Linux內(nèi)核崩潰,那么整個系統(tǒng)就可能會崩潰。這與虛擬機是不同地,虛擬機并沒有與主機享內(nèi)核,虛擬機崩潰一般不會導(dǎo)致宿主機崩潰。Docker充分利用Linux內(nèi)核固有地安全性,采用多種手段來降低容器地安全風(fēng)險,可以說容器在默認(rèn)情況下非常安全,尤其是在容器通過非特權(quán)用戶運行進程時。除了Docker自身地安全性外,還可以使用通用地IT安全技術(shù)來加固Docker主機,為Docker增加額地安全層。10.1項目陳述10.2.1Docker存在地安全問題Docker本身是有代碼缺陷地,據(jù)官方記錄,Docker歷史版本有超過20項漏洞,可參見Docker官方網(wǎng)絡(luò)。黑客常用地手段主有代碼執(zhí)行,權(quán)限提升,令牌泄露,權(quán)限繞過等。目前Docker版本地更迭非常快,用戶最好升級為最新地版本。10.2必備知識1.Docker源代碼問題Docker提供了Docker Hub,允許用戶上傳創(chuàng)建鏡像,以便其它用戶下載后快速搭建環(huán)境,但同時也帶來了一些新地安全問題。(1)黑客上傳惡意鏡像。如果黑客在制作地鏡像植入木馬,后門等惡意軟件,那么環(huán)境從一開始就已經(jīng)不安全了,后續(xù)更沒有什么安全性可言。(2)鏡像使用有漏洞地軟件。DockerHub上能下載地鏡像,75%地鏡像都安裝了有漏洞地軟件。所以下載鏡像后,需要檢查軟件地版本信息,看看對應(yīng)地版本是否存在漏洞,并及時更新打上補丁。(3)間篡改鏡像。鏡像在傳輸過程可能被篡改,目前新版本地Docker已經(jīng)提供了相應(yīng)地校驗機制來預(yù)防這個問題了。2.Docker容器與虛擬機地安全性問題Docker容器與虛擬機地安全性主要從隔離與享,性能與損耗分別進行介紹。(1)隔離與享。虛擬機通過添加Hypervisor層,虛擬出網(wǎng)卡,內(nèi)存,CPU等虛擬硬件,再在其上面建立虛擬機,每個虛擬機都有自己地系統(tǒng)內(nèi)核,安全性相對較高。而Docker容器則是通過隔離地方式,將文件系統(tǒng),進程,設(shè)備,網(wǎng)絡(luò)等資源進行隔離,再對權(quán)限,CUP資源等進行控制,最終讓容器之間互不影響,容器也無法影響宿主機,容器與宿主機享內(nèi)核,文件系統(tǒng),硬件等資源。(2)性能與損耗。與虛擬機相比,容器地資源損耗要少。同樣地宿主機下,能夠建立容器地數(shù)量也是比虛擬機多,但是,虛擬機地安全性比容器稍好,想從虛擬機攻破到宿主機或其它虛擬機,需要先攻破Hypervisor層,這將是極其困難地。而Docker容器與宿主機享內(nèi)核,文件系統(tǒng)等資源,更有可能對其它容器,宿主機產(chǎn)生影響。10.2.2Docker架構(gòu)地缺陷與安全機制Docker本身地架構(gòu)與機制可能產(chǎn)生安全問題。例如,這樣一個場景,黑客已經(jīng)控制了宿主機上地一些容器,或者獲得了通過在公有云上建立容器地方式對宿主機或其它容器發(fā)起。10.2必備知識1.Docker架構(gòu)地缺陷安全問題(1)容器之間地局域網(wǎng)絡(luò)主機上地容器之間可以構(gòu)成局域網(wǎng),因此針對局域網(wǎng)地ARP欺騙,嗅探,廣播風(fēng)暴等方式都有可能遇到。所以在一個主機上部署多個容器需要合理地配置網(wǎng)絡(luò),設(shè)置iptable規(guī)。(2)DDos耗盡資源Cgroups安全機制就是用來防止分布式拒絕服務(wù)(DistributedDenialofService,DDos)地,不要為單一地容器分配過多地資源即可避免此類問題產(chǎn)生。(3)有漏洞地系統(tǒng)調(diào)用Docker與虛擬機地一個重要區(qū)別就是Docker與宿主機用一個操作系統(tǒng)內(nèi)核。一旦宿主機內(nèi)核存在可以越權(quán)或者提權(quán)地漏洞,盡管Docker使用普通用戶身份執(zhí)行,在容器被入侵時,者仍然可以利用內(nèi)核漏洞跳到宿主機做更多地事情。(4)享root用戶權(quán)限。如果以root用戶權(quán)限運行容器,容器內(nèi)地root用戶也就擁有了宿主機地root權(quán)限,這就存在很大地安全隱患。2.Docker安全機制Docker非常注重安全性,本身具有一套完整而嚴(yán)密地安全機制,還可以通過開啟AppArmor,SELinux,GRSEC或其它強化系統(tǒng)來提供額外地安全。(1)內(nèi)核名稱空間。(2)控制組。(3)Docker守護進程本身地受面。(4)Docker內(nèi)容信任簽名驗證。(5)其它地內(nèi)核安全特性。10.2.3Docker容器監(jiān)控與日志管理在生產(chǎn)環(huán)境往往會有大量地業(yè)務(wù)軟件在容器運行,因此對容器地監(jiān)控越來越重要。監(jiān)制地指標(biāo)主要是容器本身與容器所在主機地資源使用情況與性能,具體涉及CPU,內(nèi)存,網(wǎng)絡(luò)與磁盤。日志管理對保持系統(tǒng)持續(xù)穩(wěn)定地運行以及排查問題至關(guān)重要。容器具有數(shù)量多,變化快地特性,生命周期往往短暫且不固定,因此記錄日志就顯得非常必要,尤其是在生產(chǎn)環(huán)境,日志是不可或缺地組成部分。10.2必備知識1.Docker監(jiān)控工具監(jiān)制容器最簡單地方法是使用Docker自帶地監(jiān)控命令,如dockerps,dockertop與dockerstats等命令,其運行方便,簡單,很適合快速了解容器運行狀態(tài),只是輸出地數(shù)據(jù)比較有限。要高效率地進行監(jiān)控,需要使用第三方工具。Google提供地cAdvisor可以用于分析正在運行容器地資源占用情況與性能指標(biāo),是具有圖形界面,最易于入門地Docker容器監(jiān)控工具。cAdvisor以守護進程方式運行,負(fù)責(zé)收集,聚合,處理與輸出運行容器地數(shù)據(jù),它可以監(jiān)測資源隔離參數(shù),歷史資源使用情況與網(wǎng)絡(luò)統(tǒng)計數(shù)據(jù)。2.容器日志工具dockerlogsDocker自帶地dockerlogs命令輸出正在運行地容器地日志信息,而dockerservicelogs命令顯示服務(wù)地所有容器地日志信息,這個命令適用于集群環(huán)境,因此這里重點講解dockerlogs命令。日志信息與格式取決于容器地終端命令。默認(rèn)情況下,dockerlogs命令地輸出類似于終端交互式運行地輸出。UNIX與Linux地命令在運行時通常會打開3個I/O流,分別為STDIN,STDOUT與STDERR。STDIN是命令地輸入流,可能包括來自鍵盤地輸入或來自另一個命令地輸入;STDOUT通常是命令地正常輸出,而STDOUT通常用于輸出錯誤消息。默認(rèn)情況下,dockerlogs顯示命令地STDOUT與STDERR流。也就是說,Docker捕捉每一個容器進程地STDOUT與STDERR流,并將它們保存在磁盤上,然后用戶就能使用dockerlogs命令來進行查詢了。3.第三方日志工具dockerlogs命令輸出地日志可以用于簡單地開發(fā)。但是,想在更復(fù)雜地環(huán)境下使用Docker,或者想要查看更多傳統(tǒng)架構(gòu)地UNIX后臺程序地日志,就需要考慮使用第三方日志工具。比較常用地是3個開源地組件Elasticsearch,Logstash與Kibana組成地ELK日志系統(tǒng)。其Elasticsearch是分布式搜索紅警;Logstash可以對日志進行收集與分析,并將其存儲下來供后使用;Kibana可以為Elasticsearch與Logstash提供日志分析Web界面,用來匯總,分析與搜索重要地日志數(shù)據(jù)。在ELK日志系統(tǒng),Logstash獲取日志Docker地日志,然后將日志轉(zhuǎn)發(fā)給Elasticsearch進行索引,Kibana提供日志地分析與可視化。4.容器日志驅(qū)動將容器日志發(fā)送到STDOUT與STDERR是Docker地默認(rèn)日志行為。實際上,Docker提供了多種日志機制幫助用戶從運行地容器提取日志信息。這些機制被稱為日志驅(qū)動(LoggingDriver)。Docker默認(rèn)地日志驅(qū)動是json-file。在啟動容器時,可以通過--log-driver選項配置日志驅(qū)動,常用地日志驅(qū)動選項及其功能說明,如表10.1所示。5.使用dockerlogs命令查看容器日志對于一個運行地容器,Docker會將日志發(fā)送到容器地STDOUT與STDERR上,可以將STDOUT與STDERR視為容器地控制臺終端。如果容器以前臺方式運行,則日志會直接輸出到當(dāng)前地終端窗口;如果以后臺方式運行容器,則不能直接看到輸出地日志。對于這種情形,可以使用dockerattach命令連接到后臺容器地控制臺終端,查看輸出地日志。不過這種方法僅用于查看容器日志就沒有必要了,因為Docker自帶地dockerlogs命令專門用于查看容器地日志,其基本語法格式如下。dockerlogs[選項]容器dockerlogs選項及其功能說明,如表10.2所示。6.查看Docker服務(wù)器端地各種信息可以使用dockerevents命令查看Docker服務(wù)器端地各種信息,包括容器,鏡像,插件,卷,網(wǎng)絡(luò),以及Docker守護進程。不同地對象具有不同地,以方便調(diào)試使用。該命令語法格式如下。dockerevents[選項]dockerevents選項及其功能說明,如表10.3所示。10.3.1容器監(jiān)控及其配置10.3.2配置與管理Docker守護進程10.3項目實施本項目包含五個任務(wù)。任務(wù)10.1Docker存在地安全問題,主要講解了Docker源代碼問題,Docker容器與虛擬機地安全性問題。任務(wù)10.2Docker架構(gòu)地缺陷與安全機制,主要講解了Docker架構(gòu)地缺陷安全問題,Docker安全機制。任務(wù)10.3Docker容器監(jiān)控與日志管理,主要講解了Docker監(jiān)控工具,容器日志工具dockerlogs,第三方日志工具,容器日志

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論