Docker安全嗎? 隨著越來越多的組織將生產(chǎn)工作負(fù)載遷移到容器,這就是價(jià)值數(shù)百萬美元的問題。但也是一個(gè)簡單的問題,并沒有肯定或否定的答案,而不是用二進(jìn)制術(shù)語來思考Docker安全性(也就是說,試圖確定它是否安全),最好深入研究Docker如何工作的細(xì)節(jié),以便了解Docker安全范例如何發(fā)揮作用。那么,讓我們來看看Docker如何工作以及這對容器安全性意味著什么。要回答Docker是否安全的問題,我們首先來看看Docker堆棧的關(guān)鍵部分:
Docker有兩個(gè)關(guān)鍵部分:Docker Engine,即運(yùn)行時(shí);Docker Hub,是Docker容器的官方注冊表。 保護(hù)系統(tǒng)的兩個(gè)部分同樣重要。 要做到這一點(diǎn),需要了解它們各自包含哪些內(nèi)容,哪些組件需要保護(hù),以及如何保護(hù)。讓我們從Docker Engine開始吧。
Docker Engine
Docker Engine從容器映像文件托管和運(yùn)行容器。 它還管理網(wǎng)絡(luò)和存儲卷。 保護(hù)Docker Engine有兩個(gè)關(guān)鍵方面:命名空間和控制組。命名空間是Docker從Linux內(nèi)核繼承的功能。 命名空間將容器彼此隔離,以便容器中的每個(gè)進(jìn)程都無法查看在相鄰容器中運(yùn)行的進(jìn)程。最初,Docker容器默認(rèn)以root用戶身份運(yùn)行,這引起了很多關(guān)注。 但是,從v1.10開始,Docker支持名稱空間,允許您以非root用戶身份運(yùn)行容器。 默認(rèn)情況下,在Docker中關(guān)閉命名空間,因此需要先激活它們才能使用它們。Docker中對控制組或cgroup的支持允許您設(shè)置CPU,內(nèi)存,網(wǎng)絡(luò)和塊IO的限制。 默認(rèn)情況下,容器可以使用無限量的系統(tǒng)資源,因此設(shè)置限制很重要。否則整個(gè)系統(tǒng)可能會受到一個(gè)饑餓容器的影響。除了命名空間和控制組之外,還可以通過使用SELinux和AppArmor等其他工具進(jìn)一步加強(qiáng)Docker Engine。SELinux為內(nèi)核提供訪問控制。 它可以根據(jù)您為主機(jī)設(shè)置的策略,根據(jù)容器中運(yùn)行的進(jìn)程類型或進(jìn)程級別來管理訪問。 根據(jù)此策略,它可以啟用或限制對主機(jī)的訪問。AppArmor會將安全配置文件附加到主機(jī)上運(yùn)行的每個(gè)進(jìn)程。 該配置文件定義了進(jìn)程可以使用的資源。 Docker將默認(rèn)配置文件應(yīng)用于進(jìn)程,但您也可以應(yīng)用自定義配置文件。與AppArmor類似,Seccomp使用安全配置文件來限制進(jìn)程可以進(jìn)行的調(diào)用次數(shù)。 這完善了DockerEngine中可用的基于Linux的內(nèi)核安全功能列表。
Docker Hub
當(dāng)Docker Engine管理容器時(shí),它需要Docker堆棧的另一半來從中提取容器映像。 那部分是Docker Hub——容器圖像存儲和共享的容器注冊表。容器圖像可以由任何人創(chuàng)建,并公開供任何人下載。這既是好事,也是壞事。 這很好,因?yàn)樗梢詫?shí)現(xiàn)開發(fā)人員之間的協(xié)作,并且只需點(diǎn)擊幾下就可以非常輕松地啟動(dòng)操作系統(tǒng)或應(yīng)用程序的實(shí)例。但是如果下載具有漏洞的公共容器映像,則會出現(xiàn)安全性問題。經(jīng)驗(yàn)法則是始終下載官方存儲庫,這些存儲庫可用于大多數(shù)常用工具,并且永遠(yuǎn)不會從未知作者下載存儲庫。除此之外,應(yīng)掃描每個(gè)下載的容器映像是否存在漏洞。對于私有存儲庫的用戶,Docker Hub將掃描下載的容器映像。它會免費(fèi)掃描一些存儲庫,之后您需要支付掃描作為附件。Docker Hub不是Docker容器的唯一注冊表服務(wù)。其他流行的注冊表包括Quay,AWS ECR和GitLab Container Registry。 這些工具還具有自己的掃描功能。 此外,Docker Trusted Registry(DTR)可以安裝在防火墻后面,但需要付費(fèi)。 第三方安全工具雖然上述安全功能為Docker Engine和Docker Hub提供了基本保護(hù),但它們?nèi)狈S萌萜靼踩ぞ叩墓δ芎头秶?像Twistlock這樣的工具可以完全保護(hù)您的Docker堆棧。 它超越了任何一個(gè)部分,并為您提供整個(gè)系統(tǒng)的整體視圖。Docker是各種移動(dòng)和靜態(tài)部件的復(fù)雜網(wǎng)格。顯然,插入這些安全工具中的任何一個(gè)都不會立即使整個(gè)堆棧安全。 它將采用這些方法的組合來保護(hù)所有級別的Docker。所以,下次有人問你Docker是否安全時(shí),你應(yīng)該問他們他們指的是Docker的哪一部分。 然后,您可以解釋影響該層的各種安全注意事項(xiàng)。
-
堆棧
+關(guān)注
關(guān)注
0文章
182瀏覽量
19754 -
Docker
+關(guān)注
關(guān)注
0文章
457瀏覽量
11847
發(fā)布評論請先 登錄
相關(guān)推薦
評論