Docker平臺提供以下四種原生安全技術:
Docker Swarm模式:默認是開啟安全功能的。無須任何配置,就可以獲得加密節點ID、雙向認證、自動化CA配置、自動證書更新、加密集群存儲、加密網絡等安全功能。
Docker內容信任(Docker Content Trust, DCT):允許用戶對鏡像簽名,并且對拉取的鏡像的完整度和發布者進行驗證。
Docker安全掃描(Docker Security Scanning):分析Docker鏡像,檢查已知缺陷,并提供對應的詳細報告。
Docker密鑰:使安全成為Docker生態系統中重要的一環。Docker密鑰存儲在加密集群存儲中,在容器傳輸過程中實時解密,使用時保存在內存文件系統,并運行了一個最小權限模型。
加強Docker容器安全的方法有:
Docker自身安全性改進:在過去容器里的root用戶就是主機上的root用戶,如果容器受到攻擊,或者容器本身含有惡意程序,在容器內就可以直接獲取到主機root權限。Docker從1.10版本開始,使用UserNamespace做用戶隔離,實現了容器中的root用戶映射到主機上的非root用戶,從而大大減輕了容器被突破的風險,因此建議盡可能使用最新版Docker。
保障鏡像安全:為保障鏡像安全,我們可以在私有鏡像倉庫安裝鏡像安全掃描組件,對上傳的鏡像進行檢查,通過與CVE數據庫對比,一旦發現有漏洞的鏡像及時通知用戶或阻止非安全鏡像繼續構建和分發。同時為了確保我們使用的鏡像足夠安全,在拉取鏡像時,要確保只從受信任的鏡像倉庫拉取,并且與鏡像倉庫通信一定要使用HTTPS協議。
加強內核安全和管理:宿主機內核盡量安裝最新補丁;使用Capabilities劃分權限,它實現了系統更細粒度的訪問控制;啟動容器時一般不建議開啟特權模式,如需添加相應的權限可以使用–cap-add參數。
使用安全加固組件:Linux的SELinux、AppArmor、GRSecurity組件都是Docker官方推薦的安全加固組件,這三個組件可以限制一個容器對主機的內核或其他資源的訪問控制,目前容器報告里的一些安全漏洞。
資源限制:在生產環境中,建議每個容器都添加相應的資源限制,這樣即便應用程序有漏洞,也不會導致主機的資源被耗盡,最大限度降低了安全風險。
使用安全容器:容器有著輕便快速啟動的優點,虛擬機有著安全隔離的優點,有沒有一種技術可以兼顧兩者的優點,做到既輕量又安全呢?答案是有的,那就是安全容器。安全容器與普通容器的主要區別在于,安全容器中的每個容器都運行在一個單獨的微型虛擬機中,擁有獨立的操作系統和內核,并且有虛擬機般的安全隔離性。