集羣的安全性須要考慮如下幾個目標:安全
一、保證容器與其所在宿主機的隔離server
二、限制容器給基礎設施及其餘容器帶來的消極影響的能力對象
三、最小權限原則——合理限制全部組件的權限,確保組件只執行它被受權的行爲進程
四、明確組件間邊界的劃分資源
五、劃分普通用戶和管理員用戶io
六、在必要的時候容許將管理員權限賦給普通用戶集羣
七、容許擁有Secret數據的應用在集羣中運行容器
1、API Server認證基礎
集羣全部資源的訪問和變動都是經過K8S API來實現的,因此集羣安全的關鍵點就是如何識別並認證客戶端的身份,以及認證後的受權問題。配置
K8S集羣提供了3中級別的客戶端身份認證:
1)、最嚴格的的HTTPS雙向證書認證;
2)、HTTP Token認證,經過Token識別合法用戶
3)、HTTP Base認證,經過用戶名+密碼的方式認證
2、API Server 受權
分一下集中受權策略:
1)、AlwaysDeny:拒絕全部請求
2)、AlwaysAllow:接收全部請求
3)、ABAC:基於屬性的訪問控制,使用用戶配置的受權策略匹配用戶的請求,受權策略有如下四種屬性:
API Server啓用ABAC模式時,須要制定受權文件,受權文件裏的每一行都是Map類型的JSON對象,稱爲「訪問策略對象」。
3、Admission Control准入控制
Admission Control有一個准入控制列表,發送給API server的任何請求都須要經過准入列表的檢查。
4、Service Account
Service Account爲運行在Pod裏的進程使用。