k8s通過sa和自建角色實現權限精細化分配

文章目錄

  • 權限精細化分配---通過sa和自建角色實現權限精細化分配
    • 1.新建sa
    • 2.建立一個角色,并將該角色綁定到sa上
    • 3.授權namespace的權限,設置ClusterRole和ClusterRolebinding

權限精細化分配—通過sa和自建角色實現權限精細化分配

1.新建sa

kubectl create sa lishanbin -n planck

2.建立一個角色,并將該角色綁定到sa上

角色role-sa 具有的權限僅僅是namespace planck內的所有pod的查看權限,以及deployment的查看權限,無權刪除修改這些資源

[root@k8s-master ~]# cat sa-role-binding.yaml 
#k8s 1.22.10
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: role-sanamespace: planck                         #指定 Namespace
rules:                                      #權限分配- apiGroups: [""]resources: ["pods"]verbs: ["get", "watch", "list"]- apiGroups: [""]resources: ["pods/log"]verbs: ["get","list","watch"]- apiGroups: [""]resources: ["pods/attach"]verbs: ["get","list","watch"]- apiGroups: [""]resources: ["pods/exec"]verbs: ["get","list","watch"]- apiGroups: [""]resources: ["pods/status"]verbs: ["get","list","watch"]- apiGroups: [""]resources: ["podtemplates"]verbs: ["get","list","watch"]- apiGroups: ["extensions", "apps"]resources: ["deployments","statefulsets"]verbs: ["get", "list", "watch"]- apiGroups: [""]resources: ["configmaps"]verbs: ["get", "list", "watch"]- apiGroups: [""]resources: ["endpoints"]verbs: ["get", "list", "watch"]- apiGroups: [""]resources: ["events"]verbs: ["get", "list", "watch"]- apiGroups: [""]resources: ["replicationcontrollers"]verbs: ["get", "list", "watch"]- apiGroups: [""]resources: ["replicationcontrollers/status"]verbs: ["get"]- apiGroups: [""]resources: ["services"]verbs: ["get", "list", "watch"]- apiGroups: [""]resources: ["services/status"]verbs: ["get", "list", "watch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: rbac-role-bindingnamespace: planck                 #指定 Namespace
subjects:- kind: ServiceAccountname: lishanbin                 #指定 ServiceAccountnamespace: planck              #指定 Namespace
roleRef:kind: Rolename: role-saapiGroup: rbac.authorization.k8s.io

3.授權namespace的權限,設置ClusterRole和ClusterRolebinding

為什么要授權是因為sa內的secrets里的token只有在dashboard內使用,而上面的角色和角色綁定都是dev這個namespace內的,這樣綁定后,拿到token才可以登錄到dashboard的首頁,否則都無法選擇namespace。

cat rbac-cluster-role-binding.yaml 
#k8s 1.22.10
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: rbac-namespace-role
rules:- apiGroups: [""]                     #配置權限,配置其只用于 namespace 的 list 權限resources: ["namespaces"]verbs: ["list"]- apiGroups: [""]resources: ["namespaces/status"]verbs: ["get"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: rbac-default-role-binding
subjects:- kind: ServiceAccountname: lishanbin                     #配置為自定義的 ServiceAccountnamespace: planck                  #指定為服務賬戶所在的 Namespace
roleRef:kind: ClusterRolename: rbac-namespace-role             #配置上面的 RoleapiGroup: rbac.authorization.k8s.iokubectl -n planck describe secret $(kubectl get secret -n planck | grep lishanbin | awk '{print $1}')

kubernetes的dashboard提供Token和kubeconfig兩種認證方式,因此上面拿到token以后可以通過token進行訪問planck這個ns下的資源了。

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

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

相關文章

warning: remember to run ‘libtool --finish /usr/local/1/php-7.4.29/libs

ubuntu上php7.4.33編譯安裝完成后警告報錯,如下所示 # /usr/local/apache2/apr/build-1/libtool --finish /usr/local/soft/php-7.4.33/libs # vim /etc/ld.so.conf.d/local.conf /usr/local/lib /usr/lib64 # ldconfig 或者安裝依賴服務,重新編譯 #…

Linu學習筆記——常用命令

Linux 常用命令全拼: Linux 常用命令全拼 | 菜鳥教程 一、切換root用戶 1.給root用戶設置密碼 sudo passwd root 2.輸入密碼,并確認密碼 3.切換到root用戶 su:Swith user(切換用戶) su root 二、切換目錄 目錄結構:Linux 系…

軟件測試基礎篇——Linux

1、Linux系統的特征 開源免費: 開源:開放源代碼,指的是底層的源代碼是可以開放出來,給相關的開發者,根據實際的需求做出修改的。 免費:不花錢,自由傳播。 ? Linux是一種免費使用和自由傳播的…

【ARM 調試】如何從 crash 信息找出問題原因

一、問題背景 粉絲在進行 ARM-A 系列軟件編程時遇到以下問題,串口打印這段日志后就重啟了,粉絲求助問是什么原因? Unhandled Exception in EL3. x30 0x0000000000b99b84 x0 0x00000000179a25b0 x1 …

NGINX組件(rewrite)

一、location匹配的規則和優先級(*) URI:統一資源標識符,是一種字符串標識,用于標識抽象的或者是物理資源;如:文件、圖片、視頻等 nginx中的URI匹配的是:網址”/“后的路徑 如&…

Linux驅動開發--uboot(1)

0.前言 先推薦一部電影《美國派》三部曲,成長題材系列的電影,也反映了對某避諱話題的理性看待,理所當然。 再推薦一個開發套件,NVIDIA Jetson系列開發套件,目前我在用的是Xavier NX和Orin Nano。為什么推薦呢&#xff…

大數據面試題:Hadoop中的幾個進程和作用

面試題來源: 《大數據面試題 V4.0》 大數據面試題V3.0,523道題,679頁,46w字 可回答:1)啟動Hadoop,都會有什么進程 參考答案: 1)NameNode:Master&#xf…

【ARM 嵌入式 編譯系列 10.2 -- 符號表與可執行程序分離詳細講解】

文章目錄 符號表與可執行程序分離方法一 使用eu-strip方法二 使用 objcopy上篇文章:ARM 嵌入式 編譯系列 10.1 – GCC 編譯縮減可執行文件 elf 文件大小 下篇文章:ARM 嵌入式 編譯系列 10.3 – GNU elfutils 工具小結 符號表與可執行程序分離 接著上篇文章 ARM 嵌入式 編譯…

解決Idea 多模塊,maven項目是多層級文件夾的子項時無法加入git管理的問題

問題 多模塊項目,引入模塊無法做git管理,第一個項目沒有git分支標志,也不能像其他項目一樣右鍵出git選項。 解決方法 發現該模塊是多層級的文件夾結構,也就是項目本身在一個文件夾下。應該是要管理該文件夾。 Settings-Versi…

el-select控制單選還是多選

multiple表示多選&#xff0c;:multiple-limit“1” 限制多選的條數為1&#xff0c;2就是選兩個&#xff0c;依此類推。為0 就是不限制選幾個 使用 allow-create 屬性即可通過在輸入框中輸入文字來創建新的條目。注意此時 filterable 必須為真。 <el-form :inline"true…

【劍指 Offer 40】最小的k個數

題目&#xff1a; 輸入整數數組 arr &#xff0c;找出其中最小的 k 個數。例如&#xff0c;輸入 4、5、1、6、2、7、3、8 這 8 個數字&#xff0c;則最小的 4 個數字是 1、2、3、4。 示例&#xff1a; 輸入&#xff1a;arr [3,2,1], k 2 輸出&#xff1a;[1,2] 或者 [2,1] …

阿里云云主機_ECS云服務器_輕量_GPU_虛擬主機詳解

阿里云云主機分為云虛擬主機、云服務器ECS、輕量應用服務器、GPU云服務器、彈性裸金屬服務器、專有宿主機、FPGA云服務器、高性能計算E-HPC、無影云電腦等&#xff0c;阿里云百科來詳細說下阿里云云主機詳解&#xff1a; 目錄 阿里云云主機 云服務器ECS 輕量應用服務器 云…

我學會這些車載技術,是不是就可以進【小米】車企?

作者&#xff1a;阿刁 隨著智能化和電動化的發展&#xff0c;車載開發領域的前景非常廣闊。許多手機廠商也紛紛加入進來&#xff0c;華為、小米等手機巨頭也相繼推出新能源汽車。所以在未來&#xff0c;車載系統將成為汽車的核心部分&#xff0c;涵蓋車輛的控制、信息娛樂、智能…

安裝paddleSeq2.7.0版本模塊-筆記

安裝paddleSeq2.7.0版本模塊-筆記 先安裝conda和python版本 本機安裝的conda 22.9.0 python2.9.12 paddle2.4.2 paddlepaddle-gpu2.4.2 cuda10.2 安裝matplotlib3.5.0版本 opencv_python-4.5.4.60-cp39-cp39-win_amd64.whl 測試采用分割模型名稱&#xff1a;BiSeNetv2 #BiSe…

Oracle 開發篇+Java調用OJDBC訪問Oracle數據庫

標簽&#xff1a;JAVA語言、Oracle數據庫、Java訪問Oracle數據庫釋義&#xff1a;OJDBC是Oracle公司提供的Java數據庫連接驅動程序 ★ 實驗環境 ※ Oracle 19c ※ OJDBC8 ※ JDK 8 ★ Java代碼案例 package PAC_001; import java.sql.Connection; import java.sql.ResultSet…

背上花里胡哨的書包準備面試之webpack篇(+一些常問的面試題)

目錄 webpack理解&#xff1f; webpack構建流程&#xff1f; loader解決什么問題&#xff1f; plugin解決什么問題&#xff1f; 編寫loader和plugin的思路&#xff1f; webpack熱更新&#xff1f; 如何提高webpack的構建速度&#xff1f; 問git常用命令&#xff1f; ht…

【TensorFlow】P0 Windows GPU 安裝 TensorFlow、CUDA Toolkit、cuDNN

Windows 安裝 TensorFlow、CUDA Toolkit、cuDNN 整體流程概述TensorFlow 與 CUDA ToolkitTensorFlow 是一個基于數據流圖的深度學習框架CUDA 充分利用 NIVIDIA GPU 的計算能力CUDA Toolkit cuDNN 安裝詳細流程整理流程一&#xff1a;安裝 CUDA Toolkit步驟一&#xff1a;獲取CU…

XML 數據傳輸格式

目錄 XML簡介 一、初識XML 1.什么是 XML&#xff1f; 2.XML 和 HTML 之間的差異 3.XML 不會做任何事情 4.通過 XML 您可以發明自己的標簽 5.XML 不是對 HTML 的替代 二、XML 用途 1.XML 把數據從 HTML 分離 2.XML 簡化數據共享 3.XML 簡化數據傳輸 三、XML 樹結構 1.一個 XML 文…

QML HTTP 請求

作者: 一去、二三里 個人微信號: iwaleon 微信公眾號: 高效程序員 在 Web 開發中,實現與服務器的通信至關重要,其中 HTTP 便是最常用的方式之一。它是一種客戶端 - 服務器協議,客戶端向服務器發送請求,服務器則返回響應。常被用于在瀏覽器/客戶端和 Web 服務器之間傳輸消…

mysql執行計劃—— explain

使用explain關鍵字可以直觀的查看一條SQL語句的執行計劃&#xff0c;可以幫助我們選擇合適的索引和優化SQL語句&#xff0c;查詢結構總共有12列。下面列舉幾種需要重點掌握的&#xff1a; 1.id select的標識符&#xff0c;id越大&#xff0c;表示優先級越高&#xff0c;越先執…