當多人或多個程式共用叢集,並不是每個身分都需要完整管理權限。RBAC 是依角色管理授權的機制,用來描述某個身分可以對哪些資源執行哪些動作,例如只允許查看 Pod,卻不能刪除 Deployment 或讀取 Secret。
Role 定義命名空間內的權限規則,RoleBinding 則把角色連結到使用者、群組或 ServiceAccount。若需要定義叢集範圍的角色,可以使用 ClusterRole;實際授權範圍還要看搭配哪種繫結物件,不能只看角色名稱就判斷。
ServiceAccount 是工作負載常用的身分,不等同於人員登入帳號。應用如果只需要讀取少量資源,就應配置對應的最小權限,避免直接沿用管理者憑證。這能降低程式錯誤或憑證外洩時可能影響的範圍。
RBAC 規則主要是授予權限,沒有一般性的拒絕規則可以覆蓋其他允許。因此,排查權限時要考慮身分取得的所有相關授權。下一篇會建立只能讀取 Pod 的帳號,再分別測試可讀與不可刪除,讓權限設計具有可驗證的結果。
參考:RBAC 授權