docker-swarm教程之安全保護(hù)加密數(shù)據(jù)的方法詳解
如何安全的保護(hù)加密數(shù)據(jù)
什么是“自動鎖定”
默認(rèn)情況下,集群管理器使用的raft 算法的日志在磁盤上加密。這種靜態(tài)加密可保護(hù)服務(wù)配置和數(shù)據(jù)免受訪問加密Raft日志的攻擊者的攻擊。因此引入了Docker secret 功能,來保證加密文件的安全。
當(dāng)Docker重新啟動時,用于加密群節(jié)點(diǎn)之間通信的TLS密鑰和用于加密和解密磁盤上的Raft日志的密鑰都加載到每個管理器節(jié)點(diǎn)的內(nèi)存中。Docker能夠保護(hù)相互TLS加密密鑰以及用于加密和解密靜態(tài)Raft日志的密鑰,允許我們擁有這些密鑰,并要求在 manager手動解鎖。此功能稱為自動鎖定。
當(dāng)Docker重新啟動時,必須首先使用Docker在集群鎖定時生成的密鑰加密密鑰來解鎖集群。并且我們也可以隨時修改此密鑰加密密鑰。
注意:當(dāng)新節(jié)點(diǎn)加入集群時,是不不需要解鎖蜂群,因?yàn)槊荑€通過相互TLS傳播給它。
在啟用自動鎖定的情況下初始化蜂群
當(dāng)我們初始化新的集群時,使用--autolock標(biāo)志在Docker重新啟動時啟用群管理器節(jié)點(diǎn)的自動鎖定。
docker swarm init --autolock
將密鑰存儲在安全的地方,例如密碼管理器中。
當(dāng)Docker重新啟動服務(wù)時,鎖定的集群會導(dǎo)致以下錯誤:
sudo service docker restart docker service ls
在現(xiàn)有集群上啟用或禁用自動鎖定
要在現(xiàn)有蜂群上啟用自動鎖定,請將autolock標(biāo)志設(shè)置為true。
docker swarm update --autolock=true
要禁用自動鎖定,請將--autolock設(shè)置為false。用于讀取和寫入Raft日志的相互TLS密鑰和加密密鑰未加密存儲在磁盤上。在靜態(tài)存儲未加密的加密密鑰的風(fēng)險(xiǎn)和無需解鎖每個manager即可重新啟動蜂群的便利性之間存在權(quán)衡。
docker swarm update --autolock=false
禁用自動鎖定后,請將解鎖密鑰保留一段時間,以防manager在仍配置為使用舊密鑰鎖定時出現(xiàn)服務(wù)停止。
解鎖集群
要解鎖鎖定的集群,請使用docker swarm unlock。
docker swarm unlock
當(dāng)鎖定集群或修改密鑰時,輸入生成并在命令輸出中顯示的加密密鑰,集群解鎖。
查看正在運(yùn)行的集群當(dāng)前解鎖密鑰
考慮我們的集群按預(yù)期運(yùn)行的情況,然后管理器節(jié)點(diǎn)變得不可用。對問題進(jìn)行故障排除,并使物理節(jié)點(diǎn)重新聯(lián)機(jī),但需要通過提供解鎖密鑰來讀取加密的憑據(jù)和 Raft日志來解鎖管理器。
如果自節(jié)點(diǎn)離開集群后,密鑰尚未被修改,并且在集群中有一個功能管理器節(jié)點(diǎn)的法定人數(shù),可以使用docker swarm unlock-key查看當(dāng)前解鎖密鑰,而無需任何參數(shù)。
docker swarm unlock-key
如果密鑰在群節(jié)點(diǎn)不可用后修改,并且沒有上一個密鑰的記錄,我們可能需要強(qiáng)制 manager離開蜂群,并將其作為新manager重新加入集群。
修改解鎖鍵
我們應(yīng)該定期修改鎖定的集群的解鎖密鑰。
docker swarm unlock-key --rotate
Note:當(dāng)在修改解鎖密鑰時,請將舊密鑰記錄幾分鐘,這樣如果manager在獲得新密鑰之前停止,它仍然可能被舊密鑰解鎖。
到此這篇關(guān)于docker-swarm教程之安全保護(hù)加密數(shù)據(jù)的方法詳解的文章就介紹到這了,更多相關(guān)docker-swarm保護(hù)加密數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Docker部署Angular項(xiàng)目的方法步驟
這篇文章主要介紹了使用Docker部署Angular項(xiàng)目的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Docker Volumn容器間共享數(shù)據(jù)的實(shí)現(xiàn)
這篇文章主要介紹了Docker Volumn容器間共享數(shù)據(jù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
docker部署redis報(bào)錯內(nèi)存分配過度解決辦法
Docker很適合用于測試發(fā)布,將Docker封裝后可以直接提供給測試人員進(jìn)行運(yùn)行,不再需要測試人員與運(yùn)維、開發(fā)進(jìn)行配合,進(jìn)行環(huán)境搭建與部署,這篇文章主要給大家介紹了關(guān)于docker部署redis報(bào)錯內(nèi)存分配過度的解決辦法,需要的朋友可以參考下2023-11-11
基于Docker+Selenium Grid的測試技術(shù)應(yīng)用示例代碼
Selenium Grid允許我們在多臺計(jì)算機(jī)上并行運(yùn)行測試,并集中管理不同的瀏覽器版本和瀏覽器配置。這篇文章給大家介紹基于Docker+Selenium Grid的測試技術(shù)應(yīng)用示例代碼,需要的朋友參考下吧2021-08-08
教你使用Portainer管理多臺Docker容器環(huán)境的方法
這篇文章主要介紹了Portainer管理多臺Docker容器環(huán)境,本文給大家介紹的非常詳細(xì),包括環(huán)境準(zhǔn)備及管理docker的詳細(xì)過程,需要的朋友可以參考下2021-11-11

