~xdavidwu/cskloudv3-thesis

f35e28e38005252792db8d29d8c736ad2d3a4154 — Pinghao Wu 3 months ago b906f1c
Backgrounds: kubernetes: brief intro to rbac and admission control
1 files changed, 4 insertions(+), 0 deletions(-)

M Sections/2.Backgrounds.tex
M Sections/2.Backgrounds.tex => Sections/2.Backgrounds.tex +4 -0
@@ 34,3 34,7 @@ Kubernetes resources 的種類帶給 resources 既定的語意和格式,例如
% TODO maybe authn here to introduce sparkles token management later

\subsection{Kubernetes 存取控制}

Kubernetes 主要透過兩個機制達成使用者的存取控制,其一是 RBAC (Role-based access control)。RBAC 可以根據 resources 的類別、所在的 Namespace 或是特定的 resource 實例授予使用者對其進行操作的權力,包含創立、刪除、更新、獲取、列舉等,不同種類的操作可以分別授予。

另一個機制為 admission controllers,在 RBAC 後執行,可以根據被創立或更新的 resources 內容進行控制,又分為 mutating 與 validating 兩種。Mutating admission controllers 可以修改 resources 內容,常用於對 resources spec 中的特定欄位賦予預設值。以 mutating admission controllers 賦予預設值的方法,比起在實做 resources 的 controller 定義預設行為,以使用者的立場更為明確,使用者可以觀察創建或修改後的 resource 內容明確得知其行為,對於平台提供者,也可以透過這個機制實做平台特定的預設值。Validating admission controllers 則無法修改 resources 內容,只能做出允許或拒絕操作的決策,常用於執行特定設定上的政策。由於 Kubernetes 功能上的廣泛,不適合將每個功能都規劃成獨立的 resources 類別,用 RBAC 針對 resources 類別進行存取控制有時會顯得不足,admission controllers 便補足了這方面的彈性。