弄明白Kubernetes的RBAC政策

  • 2019 年 12 月 6 日
  • 筆記

弄明白Kubernetes的RBAC政策

Javier Salmeron,Bitnami工程師

我們大多數人都玩過具有完全管理員許可權的Kubernetes,我們知道在真實環境中我們需要:

– 擁有不同屬性的多個用戶,建立適當的身份驗證機制

– 完全控制每個用戶或用戶組可以執行的操作

– 完全控制pod中每個進程可以執行的操作

– 限制名稱空間的某些資源的可見性

從這個意義上講,RBAC(基於角色的訪問控制)是提供所有這些基本功能的關鍵要素。

早前的網研會介紹了這些概念和對象,並展示一些基本用例。包括:

– 通過僅向管理員用戶授予特權操作(例如訪問機密)來保護您的集群

– 強制群集中的用戶身份驗證

– 將資源創建(例如pod、持久卷、部署)限制到特定名稱空間。您還可以使用配額來確保資源使用受到限制和控制

– 讓用戶只在其授權的命名空間中查看資源。這允許您隔離組織內的資源(例如,在部門之間)

[Embdded video: https://v.qq.com/x/page/x0744hozlo0.html]

為了完全理解RBAC的思想,我們必須理解涉及三個要素:

– 主題:想要訪問Kubernetes API的用戶和進程

– 資源:集群中可用的Kubernetes API對象,像Pod、Deployments、Services、Nodes和PersistentVolumes等

– 動詞:可以對上述資源執行的一組操作。可以使用不同的動詞(像get、watch、create、delete等),但最終所有動詞都是創建、讀取更新或刪除(CRUD)操作。

了解到這三個要素,RBAC的主要思想如下:

我們希望連接主題,API資源和操作。換句話說,我們希望指定,在給定用戶的情況下,哪些操作可以在一組資源上執行。