K8S學習之基礎三十一:k8s中RBAC 的核心概念

Kubernetes (k8s) 中的 RBAC(Role-Based Access Control,基于角色的訪問控制)是一種用于管理用戶和服務賬戶對集群資源訪問權限的機制。RBAC 允許管理員通過定義角色(Role)和角色綁定(RoleBinding)來精確控制誰可以在哪些資源上執行哪些操作。

RBAC 的核心概念

  1. Role:

    • 定義了一組權限,指定了可以對哪些資源執行哪些操作。

    • Role 是命名空間(Namespace)級別的,即它只適用于特定的命名空間。

      apiVersion: rbac.authorization.k8s.io/v1
      kind: Role
      metadata:namespace: defaultname: pod-reader
      rules:
      - apiGroups: [""] # "" 表示核心 API 組resources: ["pods"]verbs: ["get", "watch", "list"]
      

      這個 Role 允許用戶在 default 命名空間中獲取、查看和列出 Pod。

  2. ClusterRole:

    • 類似于 Role,但它是集群級別的,適用于整個集群,而不僅僅是某個命名空間。

      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRole
      metadata:name: cluster-admin
      rules:
      - apiGroups: [""]resources: ["*"]verbs: ["*"]
      

      這個 ClusterRole 允許用戶對所有資源執行所有操作。

  3. RoleBinding:

    • 將 Role 或 ClusterRole 綁定到用戶、組或服務賬戶(ServiceAccount)。

    • RoleBinding 是命名空間級別的,即它只適用于特定的命名空間。

      apiVersion: rbac.authorization.k8s.io/v1
      kind: RoleBinding
      metadata:name: read-podsnamespace: default
      subjects:
      - kind: Username: aliceapiGroup: rbac.authorization.k8s.io
      roleRef:kind: Rolename: pod-readerapiGroup: rbac.authorization.k8s.io
      

      這個 RoleBinding 將 pod-reader Role 綁定到用戶 alice,允許她在 default 命名空間中讀取 Pod。

  4. ClusterRoleBinding:

    • 類似于 RoleBinding,但它是集群級別的,適用于整個集群。

      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRoleBinding
      metadata:name: cluster-admin-binding
      subjects:
      - kind: Username: adminapiGroup: rbac.authorization.k8s.io
      roleRef:kind: ClusterRolename: cluster-adminapiGroup: rbac.authorization.k8s.io
      

      這個 ClusterRoleBinding 將 cluster-admin ClusterRole 綁定到用戶 admin,允許她對整個集群中的所有資源執行所有操作。

RBAC 的常見操作

  • 創建 Role 和 RoleBinding:

    • 使用 kubectl create rolekubectl create rolebinding 命令可以快速創建 Role 和 RoleBinding。

      kubectl create role pod-reader --verb=get,list,watch --resource=pods
      kubectl create rolebinding read-pods --role=pod-reader --user=alice
      
  • 查看 Role 和 RoleBinding:

    • 使用 kubectl get rolekubectl get rolebinding 命令可以查看現有的 Role 和 RoleBinding。

      kubectl get role -n default
      kubectl get rolebinding -n default
      
  • 刪除 Role 和 RoleBinding:

    • 使用 kubectl delete rolekubectl delete rolebinding 命令可以刪除 Role 和 RoleBinding。

      kubectl delete role pod-reader -n default
      kubectl delete rolebinding read-pods -n default
      

RBAC 的最佳實踐

  1. 最小權限原則:
    • 只授予用戶或服務賬戶完成其任務所需的最小權限。
    • 避免使用過于寬泛的權限,如 cluster-admin,除非確實需要。
  2. 使用命名空間隔離:
    • 將不同的應用或團隊分配到不同的命名空間,并使用 Role 和 RoleBinding 來控制權限。
  3. 定期審計權限:
    • 定期檢查 Role 和 RoleBinding,確保沒有不必要的權限被授予。
  4. 使用 ServiceAccount:
    • 為每個應用或服務創建專用的 ServiceAccount,并為其分配適當的權限,而不是使用默認的 ServiceAccount。

總結

RBAC 是 Kubernetes 中管理訪問控制的重要機制,通過定義 Role、ClusterRole、RoleBinding 和 ClusterRoleBinding,管理員可以精確控制用戶和服務賬戶對集群資源的訪問權限。遵循最小權限原則和最佳實踐,可以有效地提高集群的安全性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/898092.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/898092.shtml
英文地址,請注明出處:http://en.pswp.cn/news/898092.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【eNSP實戰】三層交換機使用ACL實現網絡安全

拓圖 要求: vlan1可以訪問Internetvlan2和vlan3不能訪問Internet和vlan1vlan2和vlan3之間可以互相訪問PC配置如圖所示,這里不展示 LSW1接口vlan配置 vlan batch 10 20 30 # interface Vlanif1ip address 192.168.40.2 255.255.255.0 # interface Vla…

軟考系統架構師 — 1 考點分析

目錄 1 考點總結 1 考點總結 章節 內容 真題考察 緒論 1. 緒論 不考 計算機相關知識 2. 計算機系統基礎知識,新增計算機硬件、嵌入式、計算機語言、系統工程 對應計算機組成結構、操作系統、數據庫、計算機網絡、多媒體等知識點,整體分值在 10 …

在Eclipse 中使用 MyBatis 進行開發,通常需要以下步驟:

在Eclipse 中使用 MyBatis 進行開發,通常需要以下步驟: 1. 創建 Maven 項目 首先,在 Eclipse 中創建一個 Maven 項目。如果你還沒有安裝 Maven 插件,可以通過 Eclipse Marketplace 安裝 Maven 插件。 打開 Eclipse,選…

錯誤記錄: git 無法連接到github

錯誤記錄: git 無法連接到github 今天, 新建了一個github倉庫, 但從本地怎么都push不上去.并報錯 gitgithub.com: Permission denied (publickey). fatal: Could not read from remote repository.Please make sure you have the correct access rights and the repository e…

k8s 配置兩個deployment主機級別互斥部署

在 Kubernetes 中,要實現兩個 Deployment 的 Pod 在主機級別互斥部署,可以使用 podAntiAffinity 配置。通過設置 podAntiAffinity,可以確保兩個 Deployment 的 Pod 不會被調度到同一節點上。 實現步驟 定義 Deployment: 為每個…

Unity中WolrdSpace下的UI展示在上層

一、問題描述 Unity 中 Canvas使用World Space布局的UI,想讓它不被3d物體遮擋,始終顯示在上層。 二、解決方案 使用shader解決 在 UI 的材質中禁用深度測試(ZTest),強制 UI 始終渲染在最上層。 Shader "Custo…

五子棋小游戲-簡單開發版

一、需求分析 開發一個基于 Pygame 庫的五子棋小游戲,允許兩名玩家在棋盤上輪流落子,當有一方達成五子連珠時游戲結束,顯示獲勝信息,并提供退出游戲和重新開始游戲的操作選項。 1.棋盤顯示 : 顯示一個 15x15 的五子棋…

基于C#的以太網通訊實現:TcpClient異步通訊詳解

基于C#的以太網通訊實現:TcpClient異步通訊詳解 在現代工業控制和物聯網應用中,以太網通訊是一種常見的數據傳輸方式。本文將介紹如何使用C#實現基于TCP協議的以太網通訊,并通過異步編程提高通訊效率。我們將使用TcpClient類來實現客戶端與服…

小秋的矩陣

0小秋的矩陣 - 藍橋云課 問題描述 給你一個 n 行 m 列只包含 0 和 1 的矩陣,求它的所有子矩陣中,是方陣而且恰好包含 k 個 0 的數量。 方陣是行數和列數相等的矩陣。 子矩陣是從一個矩陣當中選取某些行和某些列交叉位置所組成的新矩陣(保…

晶晨S905L3芯片_原機安卓4升級安卓9.0_通刷線刷固件包

晶晨S905L3芯片_原機安卓4升級安卓9.0_通刷線刷固件包 線刷方法:(新手參考借鑒一下) 1、準備好一根雙公頭USB線刷刷機線,長度30-50CM長度最佳,同時準備一臺電腦; 2、電腦上安裝好刷機工具Amlogic USB Bu…

麒麟服務器操作系統Redis部署手冊

軟件簡介 Redis****介紹 REmote DIctionary Server(Redis) 是一個由 Salvatore Sanfilippo 寫的 key-value 存儲系統,是跨平臺的非關系型數據庫。 Redis 是一個開源的使用 ANSI C 語言編寫、遵守 BSD 協議、支持網絡、可基于內存、分布式、可選持久性的鍵值對(Key-Value)存…

(分塊)洛谷 P2801 教主的魔法 題解

之前學過 莫隊 算法,其運用了分塊思想;但是我居然是第一次寫純種的分塊題目。 題意 給你一個長度為 n n n 的序列 a a a(一開始 ? a i ∈ [ 1 , 1000 ] \forall a_i\in[1,1000] ?ai?∈[1,1000])。要求執行 q q q 次操作&…

谷歌Chrome或微軟Edge瀏覽器修改網頁任意內容

在谷歌或微軟瀏覽器按F12,打開開發者工具,切換到console選項卡: 在下面的輸入行輸入下面的命令回車: document.body.contentEditable"true"效果如下:

【生日蛋糕——DFS剪枝優化】

題目 分析 代碼 #include <bits/stdc.h> using namespace std;const int N 24; const int inf 0x3f3f3f3f;int mins[N], minv[N]; int R[N], H[N]; int n, m, ans inf;void dfs(int u, int v, int s) {if(v minv[u] > n) return;if(s mins[u] > ans) return;…

【C++基礎十】泛型編程(模板初階)

【C基礎十】泛型編程—模板 1.什么是模板2.函數模板的實例化&#xff1a;2.1隱式實例化2.2顯示實例化 3.函數模板參數的匹配規則4.什么是類模板5.類模板的實例化6.聲明和定義分離 1.什么是模板 void swap(int& a, int& b) {int tmp 0;tmp a;a b;b tmp; }void swap…

如何修復 Tauri 發布后程序運行時顯示 `asset not found: index.html` 的問題

如何修復 Tauri 發布后程序運行時顯示 asset not found: index.html 的問題 在使用 Tauri 發布應用程序時&#xff0c;如果運行時出現 asset not found: index.html 的錯誤&#xff0c;通常是因為 Tauri 無法找到或正確加載前端資源文件&#xff08;如 index.html&#xff09;…

短視頻下載去水印,用什么工具好?

去除視頻和圖片水印是許多用戶的需求&#xff0c;尤其是在分享或保存內容時。以下是6款超好用的工具&#xff0c;幫助你輕松去除水印&#xff0c;享受純凈的視覺體驗&#xff1a; 1. 易下載去水印小程序 特點&#xff1a; 操作簡單&#xff0c;支持抖音、快手、小紅書、嗶哩嗶哩…

【華為OD-E卷 -121 消消樂游戲 100分(python、java、c++、js、c)】

【華為OD-E卷 - 消消樂游戲 100分(python、java、c++、js、c)】 題目 游戲規則:輸入一個只包含英文字母的字符串,字符串中的兩個字母如果相鄰且相同,就可以消除。 在字符串上反復執行消除的動作,直到無法繼續消除為止,此時游戲結束。 輸出最終得到的字符串長度 輸入描…

設計模式(行為型)-備忘錄模式

目錄 定義 類圖 角色 角色詳解 &#xff08;一&#xff09;發起人角色&#xff08;Originator&#xff09;? &#xff08;二&#xff09;備忘錄角色&#xff08;Memento&#xff09;? &#xff08;三&#xff09;備忘錄管理員角色&#xff08;Caretaker&#xff09;?…

YOLO簡史:從YOLOv1到YOLOv12的技術革新與演進

YOLO&#xff08;You Only Look Once&#xff09;系列算法自2015年誕生以來&#xff0c;憑借其“單次推理”的高效特性&#xff0c;徹底改變了目標檢測領域。從初代YOLO到最新的YOLOv12&#xff0c;每一次迭代都凝聚了研究者的智慧與工業界的實踐需求。本文梳理各版本的特性、技…