k8s權(quán)限管理模型RBAC

在Kubernetes(K8s)中蹬屹,權(quán)限管理是確保集群安全性和合規(guī)性的關(guān)鍵組成部分。Role-Based Access Control(RBAC)是K8s中使用最廣泛的權(quán)限管理模型之一佣谐,它允許管理員定義和控制用戶(hù)、服務(wù)賬戶(hù)等實(shí)體對(duì)于資源的訪問(wèn)權(quán)限。本文將深入探討K8s中的RBAC模型乖杠,包括其基本概念、核心組件澄成、使用方法以及詳細(xì)示例胧洒。

RBAC基本概念

  1. 角色(Role)
    角色是RBAC的基本單元,用于定義對(duì)資源的一組權(quán)限墨状。角色是獨(dú)立于命名空間的卫漫,可以在整個(gè)集群范圍內(nèi)使用。

  2. 角色綁定(RoleBinding)
    角色綁定用于將角色與用戶(hù)肾砂、服務(wù)賬戶(hù)等實(shí)體綁定在一起列赎,賦予其相應(yīng)的權(quán)限。通過(guò)角色綁定镐确,可以實(shí)現(xiàn)將某個(gè)用戶(hù)或服務(wù)賬戶(hù)與特定的權(quán)限關(guān)聯(lián)起來(lái)包吝。

  3. 集群角色(ClusterRole)
    集群角色與角色類(lèi)似,但作用于整個(gè)集群源葫,而不是單個(gè)命名空間漏策。它允許定義對(duì)集群級(jí)別資源的權(quán)限。

  4. 集群角色綁定(ClusterRoleBinding)
    與角色綁定類(lèi)似臼氨,集群角色綁定用于將集群角色與用戶(hù)掺喻、服務(wù)賬戶(hù)等實(shí)體綁定在一起,賦予其在整個(gè)集群中的權(quán)限储矩。

RBAC核心組件

  1. Role
    以下是一個(gè)簡(jiǎn)單的Role定義的示例感耙,該Role允許用戶(hù)對(duì)Pod進(jìn)行g(shù)et和list操作:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: default
  name: pod-reader
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list"]
  1. RoleBinding
    創(chuàng)建RoleBinding將用戶(hù)綁定到上述Role:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: read-pods
  namespace: default
subjects:
- kind: User
  name: "john"
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io
  1. ClusterRole
    以下是一個(gè)簡(jiǎn)單的ClusterRole定義的示例比勉,該ClusterRole允許用戶(hù)對(duì)Nodes進(jìn)行g(shù)et操作:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: node-reader
rules:
- apiGroups: [""]
  resources: ["nodes"]
  verbs: ["get"]
  1. ClusterRoleBinding
    創(chuàng)建ClusterRoleBinding將用戶(hù)綁定到上述ClusterRole:
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: read-nodes
subjects:
- kind: User
  name: "john"
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: node-reader
  apiGroup: rbac.authorization.k8s.io

RBAC的使用方法

  1. 創(chuàng)建Role和RoleBinding
    首先斯碌,創(chuàng)建一個(gè)Role,定義資源和權(quán)限:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: default
  name: pod-reader
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list"]

接下來(lái)兼贡,創(chuàng)建一個(gè)RoleBinding屡拨,將用戶(hù)綁定到上述Role:

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-pods
  namespace: default
subjects:
- kind: User
  name: "john"
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io
  1. 創(chuàng)建ClusterRole和ClusterRoleBinding
    創(chuàng)建一個(gè)ClusterRole只酥,定義對(duì)Nodes資源的權(quán)限:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: node-reader
rules:
- apiGroups: [""]
  resources: ["nodes"]
  verbs: ["get"]

創(chuàng)建一個(gè)ClusterRoleBinding褥实,將用戶(hù)綁定到上述ClusterRole:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: read-nodes
subjects:
- kind: User
  name: "john"
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: node-reader
  apiGroup: rbac.authorization.k8s.io

RBAC示例演示
假設(shè)我們有一個(gè)Pod,其定義如下:

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  namespace: default
spec:
  containers:
  - name: nginx
    image: nginx

使用上述創(chuàng)建的Role和RoleBinding裂允,用戶(hù)john將具有g(shù)et和list的權(quán)限:

使用用戶(hù)john的身份驗(yàn)證

kubectl auth can-i get pods --as john
kubectl auth can-i list pods --as john

同樣损离,使用創(chuàng)建的ClusterRole和ClusterRoleBinding,用戶(hù)john將具有對(duì)Nodes資源的get權(quán)限:

使用用戶(hù)john的身份驗(yàn)證

kubectl auth can-i get nodes --as john

通過(guò)以上示例绝编,我們演示了如何使用RBAC在Kubernetes中定義和控制用戶(hù)對(duì)資源的權(quán)限僻澎。RBAC通過(guò)細(xì)粒度的訪問(wèn)控制,有力地保護(hù)了Kubernetes集群中的資源十饥,確保了集群的安全性和合規(guī)性窟勃。

結(jié)論
通過(guò)本文,我們深入了解了Kubernetes中權(quán)限管理模型RBAC的基本概念逗堵、核心組件秉氧,并通過(guò)詳細(xì)的示例演示了如何創(chuàng)建Role、RoleBinding蜒秤、ClusterRole和ClusterRoleBinding谬运,以及如何驗(yàn)證用戶(hù)對(duì)資源的權(quán)限。RBAC是Kubernetes中一個(gè)強(qiáng)大而靈活的權(quán)限管理工具垦藏,可以根據(jù)實(shí)際需求為不同用戶(hù)和服務(wù)賬戶(hù)分配適當(dāng)?shù)臋?quán)限,確保了集群的安全性伞访。在實(shí)際使用中掂骏,需要根據(jù)集群規(guī)模和業(yè)務(wù)需求,合理設(shè)計(jì)和配置RBAC規(guī)則厚掷,以達(dá)到最佳的安全實(shí)踐弟灼。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市冒黑,隨后出現(xiàn)的幾起案子田绑,更是在濱河造成了極大的恐慌,老刑警劉巖抡爹,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掩驱,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡冬竟,警方通過(guò)查閱死者的電腦和手機(jī)欧穴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)泵殴,“玉大人涮帘,你說(shuō)我怎么就攤上這事⌒ψ纾” “怎么了调缨?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵疮鲫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我弦叶,道長(zhǎng)俊犯,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任湾蔓,我火速辦了婚禮瘫析,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘默责。我一直安慰自己贬循,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布桃序。 她就那樣靜靜地躺著杖虾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪媒熊。 梳的紋絲不亂的頭發(fā)上奇适,一...
    開(kāi)封第一講書(shū)人閱讀 51,718評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音芦鳍,去河邊找鬼嚷往。 笑死,一個(gè)胖子當(dāng)著我的面吹牛柠衅,可吹牛的內(nèi)容都是我干的皮仁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼菲宴,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼贷祈!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起喝峦,我...
    開(kāi)封第一講書(shū)人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤势誊,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后谣蠢,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體粟耻,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年眉踱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了勋颖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡勋锤,死狀恐怖饭玲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情叁执,我是刑警寧澤茄厘,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布矮冬,位于F島的核電站,受9級(jí)特大地震影響次哈,放射性物質(zhì)發(fā)生泄漏胎署。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一窑滞、第九天 我趴在偏房一處隱蔽的房頂上張望琼牧。 院中可真熱鬧,春花似錦哀卫、人聲如沸巨坊。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)趾撵。三九已至,卻和暖如春共啃,著一層夾襖步出監(jiān)牢的瞬間占调,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工移剪, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留究珊,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓纵苛,卻偏偏與公主長(zhǎng)得像剿涮,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子赶站,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容