kubernetes&&基礎學習6

安全

機制說明

kubernetes作爲一個分佈式集羣的管理工具,保證集羣的安全性是其一個重要的任務。
API Server是集羣內部各個組件通信的中介,也是外部控制的入口,所以kubernetes的安全機制基本就是圍繞保護API Server 來設計的。
kubernetes使用了認證、鑑權、准入控制三步來保證API Server的安全
在這裏插入圖片描述

認證(Authentication)

  • HTTP Token認證: 通過一個Token來識別合法用戶
    HTTP Token的認證是用一個很長的特殊編碼方式的並且難以被模仿的字串-Token來表達客戶的一種方式。Token是一個很長又很複雜的字符串,每一個Token對應一個用戶名存儲在API Server能訪問的文件中。當客戶端發起API調用請求時,需要在HTTP Header裏放入Token

  • HTTP Base認證 : 通過用戶名 + 密碼 的方式認證
    用戶名 + : + 密碼 用BASE64算法進行編碼後的字符串放在HTTP Request 中的 Heather Authorization域裏發送給服務器端,服務器端接收到後進行解碼,獲取其用戶名和密碼

  • 最嚴格的HTTPS證書認證 : 基於CA根證書籤名的客戶端身份認證方式

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

鑑權

Authorization

上面認證過程,只是確認通信的雙方都確認了對方是可信的,可以相互通信。
而鑑權是確定請求方有哪些資源的權限。
API Server目前支持以下幾種授權策略(通過API Server的啓動參數“–authorization-mode”設置):

  • AlwaysDeny : 表示拒絕所有的請求,一般用於測試
  • AlwaysAllow : 允許接收所有的請求,如果集羣不需要授權流程,則可以採用該策略
  • ABAC (Attribute-Based Access Control):基於屬性的訪問控制,表示使用用戶配置的授權規則對用戶請求進行匹配和控制
  • Webbook : 通過調用外部REST服務對用戶進行授權
  • RBAC(Role-Based Access Control) : 基於角色的訪問控制,現行默認規則

RBAC授權模式

RBAC(Role-Based Access Control)基於角色的訪問控制,在kubernetes1.5中引入,現行版本成爲默認標準。相對其他訪問控制方式,具備以下優勢:

  • 對集羣中的資源和非資源均擁有完整的覆蓋
  • 整個RBAC完全由幾個API對象完成,同其他API對象一樣,可以用kubectl或API進行操作
  • 可以在運行時進行調整,無需重啓API Server

RBAC的API資源對象說明

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

Role and ClusterRole

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

RoleBinding和ClusterRoleBinding

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

Resources

在這裏插入圖片描述

to Subjects

實踐:創建一個用戶只能管理dev空間

提前創建用戶devuser並設置密碼,此時devuser沒有權限執行kubectl get pod
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

准入控制

在這裏插入圖片描述

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