k8s集羣安全

K8S的安全機制主要圍繞着API Server設計。使用了認證(Authentication)、鑑權(Authorization)、准入控制(Admission)來保證API Server安全。

一、認證(Authentication):

首先通過認證確認身份,可以互相通信。
認證支持三種類型,不過咱們通常用CA進行認證,畢竟安全性高

  • HTTP Token認證(單向認證)
  • HTTP Base認證:用戶名密碼(單向認證)
  • HTTPS證書認證:基於CA雙向認證(最安全)

一、組件與ApiServer通信兩種類型

  1. Controller Manager和Scheduler因爲在本機,通常不需要CA
  2. kubectl、kubelet、kube-proxy訪問API Server需要CA證書進行HTTPS

kubeconfig文件包含集羣、API Server地址、CA、context等相關信息。

二、Pod與API Server交互使用ServiceAccount

Pod中的容器訪問API Server。因爲Pod的特性,重建、銷燬,所以不採用CA(CA通信成本略高),通過SA方式與API Server交互。
K8S的Secret分爲兩類,

  1. 用於SA的token、ca.crt、namespace
  2. 用戶自定義加密信息

認證(Authentication)小結:k8s組件與Pod中容器與API Server交互方式的區別就在於一種使用了CA的HTTPS通信,另一種通過SA訪問

二、鑑權(Authorization)
基於角色的訪問控制(RBAC模式)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章