From f35e28e38005252792db8d29d8c736ad2d3a4154 Mon Sep 17 00:00:00 2001 From: Pinghao Wu Date: Sun, 8 Sep 2024 14:19:18 +0800 Subject: [PATCH] Backgrounds: kubernetes: brief intro to rbac and admission control --- Sections/2.Backgrounds.tex | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Sections/2.Backgrounds.tex b/Sections/2.Backgrounds.tex index 2c29151..3173cf3 100644 --- a/Sections/2.Backgrounds.tex +++ b/Sections/2.Backgrounds.tex @@ -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 便補足了這方面的彈性。 -- 2.45.2