kubernetes實踐之十六:RBAC 角色訪問控制
一:RBAC體系結構
二:RBAC角色繫結流程
三:說明
1.RBAC的優勢
a.對叢集中的資源和非資源許可權均有完整覆蓋
b.RBAC由API物件完成,可以用Kubectl或API進行操作
c.可以在允許時進行調整,無須重新啟動API Server
2.Role
一個角色就是一組許可權的集合,在一個名稱空間中,可以使用Role定義一個角色,如果是叢集級別的可以使用ClusterRole.
3.ClusterRole
除了和Role一樣具有名稱空間內資源的管理能力,還可以用於特殊元素的授權。如:
a.叢集範圍的資源,node等
b.非資源型的路徑,如“/healthz”
c.涵蓋全部名稱空間的資源
4.RoleBinding和ClusterRoleBinding
兩者用於把一個角色繫結到一個目標上,如User,Group或Service Account. RoleBinding可以引用Role和ClusterRole, ClusterRoleBinding僅可以引用ClusterRole.
5.對資源的引用方式
a.使用“/”來分隔資源和下級資源 如:resources: ["pods", "pods/log"]
b.透過名字進行引用 如:resourceNames: ["my-configmap"]
6.常用角色示例
a.執行讀取核心API組中的POD資源
b.執行讀寫“extensions”和"apps"兩個API組中的deployment資源
7.常用角色繫結示例
a.繫結Kube-system名稱空間中預設的service-account
b.qa名稱空間中的所有service account
c.所有認證使用者
8.對Service Account的授權管理
kube-system之外的service account 是沒有任何許可權的,這就需要使用者為service account賦予所需的許可權。如:
二:RBAC角色繫結流程
三:說明
1.RBAC的優勢
a.對叢集中的資源和非資源許可權均有完整覆蓋
b.RBAC由API物件完成,可以用Kubectl或API進行操作
c.可以在允許時進行調整,無須重新啟動API Server
2.Role
一個角色就是一組許可權的集合,在一個名稱空間中,可以使用Role定義一個角色,如果是叢集級別的可以使用ClusterRole.
3.ClusterRole
除了和Role一樣具有名稱空間內資源的管理能力,還可以用於特殊元素的授權。如:
a.叢集範圍的資源,node等
b.非資源型的路徑,如“/healthz”
c.涵蓋全部名稱空間的資源
4.RoleBinding和ClusterRoleBinding
兩者用於把一個角色繫結到一個目標上,如User,Group或Service Account. RoleBinding可以引用Role和ClusterRole, ClusterRoleBinding僅可以引用ClusterRole.
5.對資源的引用方式
a.使用“/”來分隔資源和下級資源 如:resources: ["pods", "pods/log"]
b.透過名字進行引用 如:resourceNames: ["my-configmap"]
6.常用角色示例
a.執行讀取核心API組中的POD資源
點選(此處)摺疊或開啟
-
rules:
-
- apiGroups: [""]
-
resources: ["pods"]
- verbs: ["get", "list", "watch"]
點選(此處)摺疊或開啟
-
rules:
-
- apiGroups: ["extensions", "apps"]
-
resources: ["deployments"]
- verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
a.繫結Kube-system名稱空間中預設的service-account
點選(此處)摺疊或開啟
-
subjects:
-
- kind: ServiceAccount
-
name: default
- namespace: kube-system
點選(此處)摺疊或開啟
-
subjects:
-
- kind: Group
-
name: system:serviceaccounts:qa
- apiGroup: rbac.authorization.k8s.io
點選(此處)摺疊或開啟
-
subjects:
-
- kind: Group
-
name: system:authenticated
- apiGroup: rbac.authorization.k8s.io
kube-system之外的service account 是沒有任何許可權的,這就需要使用者為service account賦予所需的許可權。如:
點選(此處)摺疊或開啟
-
kubectl create rolebinding default-view \
-
--clusterrole=view \
-
--serviceaccount=my-namespace:default \
- --namespace=my-namespace
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-2152940/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於角色的訪問控制RBAC是什麼? - TailscaleAI
- kubernetes實踐之五十六:雲原生
- 【解構雲原生】K8s 的 RBAC - 基於角色的訪問控制K8S
- .Net Core實戰之基於角色的訪問控制的設計
- [Django REST framework - RBAC-基於角色的訪問控制、base64編碼 、xadmin的使用]DjangoRESTFramework
- 容器編排系統K8s之訪問控制--RBAC授權K8S
- kubernetes實踐之二十六:GlusterFS
- Nestjs RBAC 許可權控制管理實踐(一)JS
- Nestjs RBAC 許可權控制管理實踐 (二)JS
- 基於角色管理的系統訪問控制
- kubernetes實踐之四十六:分散式負載測試Locust分散式負載
- VPC最佳實踐(四):VPC中的訪問控制
- kubernetes實踐之六十六:Istio實現金絲雀釋出原理
- 服務端指南 | 基於角色的訪問控制服務端
- HTTP之訪問控制「CORS」HTTPCORS
- Spring Security實現基於RBAC的許可權表示式動態訪問控制Spring
- Spring Security 實戰乾貨:基於配置的介面角色訪問控制Spring
- jCasbin: 強大的訪問控制、許可權管理框架,支援 ACL, RBAC, ABAC框架
- Quarkus中基於角色的許可權訪問控制教程
- 訪問控制之9種元素
- 資料安全合規需要從基於角色的訪問控制邁向基於屬性的訪問控制
- Spring Security 實戰乾貨:基於註解的介面角色訪問控制Spring
- kubernetes實踐之十一:EFK
- kubernetes實戰篇之通過api-server訪問dashboardAPIServer
- kubernetes實戰篇之Dashboard的訪問許可權限制訪問許可權
- Kubernetes API訪問鑑權之Basic模式API模式
- kubernetes實踐之五十二:Helm
- kubernetes實踐之五十七:PodPreset
- kubernetes實踐之五十八:CronJob
- kubernetes實踐之十七:架構架構
- kubernetes實踐之十九:API概述API
- kubernetes實踐之六十:Cabin-Manage Kubernetes
- 阿里雲身份管理與訪問控制之信任管理:角色扮演,臨時身份和安全令牌阿里
- Struts2實現訪問控制
- 【RAC】RAC 實現IP訪問控制
- kubernetes使用http rest api訪問叢集之使用postman工具訪問 apiserverHTTPRESTAPIPostmanServer
- 設計模式(十六)——訪問者模式設計模式
- 用訪問控制列表實現網路單向訪問(轉)