好的安全性是基于分層隔離的,而 Docker 恰好有很多分層。Docker 支持所有主流 Linux 安全機(jī)制,同時(shí) Docker 自身還提供了很多簡(jiǎn)單的并且易于配置的安全技術(shù)。
接下來主要介紹一些 Docker 中保障容器安全運(yùn)行的一些技術(shù)。
安全本質(zhì)就是分層!通俗地講,擁有更多的安全層,就能擁有更多的安全性。而 Docker 提供了很多安全層。下圖展示了一部分安全技術(shù)。
Linux Docker 利用了大部分 Linux 通用的安全技術(shù)。這些技術(shù)包括了命名空間(Namespace)、控制組(CGroup)、系統(tǒng)權(quán)限(Capability),強(qiáng)制訪問控制(MAC)系統(tǒng)以及安全計(jì)算(Seccomp)。
對(duì)于上述每種技術(shù),Docker 都設(shè)置合理的默認(rèn)值,實(shí)現(xiàn)了流暢的并且適度安全的開箱即用體驗(yàn)。同時(shí),Docker 也允許用戶根據(jù)特定需求自定義調(diào)整每項(xiàng)安全配置。
Docker 平臺(tái)本身也提供了一些非常棒的原生安全技術(shù)。并且重要的是,這些技術(shù)使用起來都很簡(jiǎn)單!
⒈ Docker Swarm 模式
默認(rèn)是開啟安全功能的。無須任何配置,就可以獲得加密節(jié)點(diǎn) ID、雙向認(rèn)證、自動(dòng)化 CA 配置、自動(dòng)證書更新、加密集群存儲(chǔ)、加密網(wǎng)絡(luò)等安全功能。
⒉ Docker 內(nèi)容信任(Docker Content Trust, DCT)
允許用戶對(duì)鏡像簽名,并且對(duì)拉取的鏡像的完整度和發(fā)布者進(jìn)行驗(yàn)證。
⒊ Docker 安全掃描(Docker Security Scanning)
分析 Docker 鏡像,檢查已知缺陷,并提供對(duì)應(yīng)的詳細(xì)報(bào)告。
⒋ Docker 密鑰
使安全成為 Docker 生態(tài)系統(tǒng)中重要的一環(huán)。Docker 密鑰存儲(chǔ)在加密集群存儲(chǔ)中,在容器傳輸過程中實(shí)時(shí)解密,使用時(shí)保存在內(nèi)存文件系統(tǒng),并運(yùn)行了一個(gè)最小權(quán)限模型。
重要的是,要知道 Docker 在使用主流 Linux 安全技術(shù)的同時(shí),還提供了額外的擴(kuò)展以及一些新的安全技術(shù)。Linux 安全技術(shù)看起來可能略為復(fù)雜,但是 Docker 平臺(tái)的安全技術(shù)卻非常簡(jiǎn)單。
大家都知道安全是非常重要的。同時(shí),安全又很復(fù)雜并且枯燥無味。
在最初決定向平臺(tái)中添加安全功能時(shí),就選擇了簡(jiǎn)單易用的方式。Docker 知道如果安全相關(guān)配置特別復(fù)雜,那么就沒有人會(huì)去使用。所以,Docker 平臺(tái)提供的絕大部分安全功能使用起來都很簡(jiǎn)單。
并且大部分的安全設(shè)置都配有默認(rèn)值,意味著用戶無須任何配置,就能得到一個(gè)相當(dāng)安全的平臺(tái)。當(dāng)然,默認(rèn)配置不一定是最合適的,但至少在最開始能夠保障一定的安全性。如果默認(rèn)配置與用戶需求不符,那么用戶也可以進(jìn)行自定義配置。