最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Kubernetes訪問控制之鑒權方法詳解

 更新時間:2023年09月12日 11:40:00   作者:宏勢  
這篇文章主要為大家介紹了Kubernetes訪問控制之鑒權方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

RBAC鑒權

鑒權是確定請求方有哪些資源的權限,API Server目前支持RBAC鑒權、Node鑒權、ABAC鑒權 和 Webhook模式

基于角色(Role)的訪問控制(RBAC)是一種基于組織中用戶的角色來調節(jié)控制對計算機或網(wǎng)絡資源的訪問的方法。

要啟用 RBAC,在啟動 API 服務器時將 --authorization-mode 參數(shù)設置為一個逗號分隔的列表并確保其中包含 RBAC

API對象

RBAC API 聲明了四種 Kubernetes 對象:Role、ClusterRole、RoleBindingClusterRoleBinding

Role 或 ClusterRole 中包含一組代表相關權限的規(guī)則。 這些權限是純粹累加的(不存在拒絕某操作的規(guī)則)

Role 定義命名空間內權限,ClusterRole是定義跨命名空間的權限

Role定義例子如下:

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: default      ##如果kind是ClusterRole,無須指定,代表集群級別
  name: pod-reader
rules:
- apiGroups: [""]             #"" indicates the core API group 具體參考kubectl api-resources
  resources: ["pods"]         # 資源names, 子資源例子:["pods/log"]
  verbs: ["get", "watch", "list"]  #允許動作

如果是Role,代表能訪問default空間下的所有Pod,如果是ClusterRolo代表能訪問所有空間下的Pod

-指定固定某個資源名稱

rules:
- apiGroups: [""]
  # 在 HTTP 層面,用來訪問 ConfigMap 資源的名稱為 "configmaps"
  resources: ["configmaps"]
  resourceNames: ["my-configmap"]
  verbs: ["update", "get"]

-指定非資源端點

rules:
- nonResourceURLs: ["/healthz", "/healthz/*"] # nonResourceURL 中的 '*' 是一個全局通配符
  verbs: ["get", "post"]

RoleBinding 將Role定義的權限授予用戶/用戶組/服務賬號 (統(tǒng)稱主體subject)

ClusterRoleBinding 只能將ClusterRole定義的權限授予用戶/用戶組/服務賬號(統(tǒng)稱主體subject)
將pod-reader角色授予普通用戶myuser

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: read-pods
  namespace: default
subjects:
- kind: User       #支持User,Group,ServiceAccount 三種類型
  name: myuser
  apiGroup: rbac.authorization.k8s.io
roleRef:
   kind: Role
   name: pod-reader
   apiGroup: rbac.authorization.k8s.io

 一個 RoleBinding 也可以引用某 ClusterRole 并將該 ClusterRole 綁定到 RoleBinding 所在的名字空間

聚合的ClusterRole

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: monitoring
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      rbac.example.com/aggregate-to-monitoring: "true"
rules: [] # 控制面自動填充這里的規(guī)則
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: monitoring-endpoints
  labels:
    rbac.example.com/aggregate-to-monitoring: "true"
# 當你創(chuàng)建 "monitoring-endpoints" ClusterRole 時,
# 下面的規(guī)則會被添加到 "monitoring" ClusterRole 中
rules:
- apiGroups: [""]
  resources: ["services", "endpointslices", "pods"]
  verbs: ["get", "list", "watch"]

相關核心內置對象

所有system:前綴都是系統(tǒng)自帶命名規(guī)則

1.主體Subject

名稱類型說明
defaultServiceAccount每個命名空間自帶
system:anonymousUser匿名用戶
system:serviceaccountsGroup任務名字空間的服務賬號都屬于這個組
system:serviceaccounts:空間名字Group該名字空間下的服務賬號都屬于這個組
system:authenticatedGroup所有通過身份認證的用戶都屬于這個組
system:unauthenticatedGroup所有未通過身份認證的用戶都屬于這個組
system:mastersGroup超級管理員cluster-admin所屬的組

system:serviceaccount: (單數(shù))是用于服務賬戶用戶名的前綴;
system:serviceaccounts: (復數(shù))是用于服務賬戶組名的前綴。

2.默認ClusterRole/ClusterRoleBinding

  • 默認 ClusterRole 和 ClusterRoleBinding 都有kubernetes.io/bootstrapping=rbac-defaults 標簽
  • 自動協(xié)商:在每次啟動時,API 服務器都會更新默認 ClusterRole 以添加缺失的各種權限, 并更新默認的 ClusterRoleBinding 以增加缺失的各類主體。
  • 禁止可設置注解rbac.authorization.kubernetes.io/autoupdate=false
默認ClusterRole對應默認ClusterRoleBinding說明
cluster-admincluster-admin, 綁定system:master組超級管理員角色
admin大多數(shù)對象進行讀/寫操作包括角色和角色綁定
edit大多數(shù)對象進行讀/寫操作角色
view只有訪問權限角色
system:discoverysystem:discovery,綁定組 system:authenticated允許以只讀方式訪問 API 發(fā)現(xiàn)端點

如果要禁用匿名的未經(jīng)過身份驗證的用戶訪問,請在 API 服務器配置中中添加 --anonymous-auth=false 的配置選項

  • 創(chuàng)建一個dev空間的管理員dev-admin
kubectl create rolebinding dev-admin --clusterrole=cluster-admin --user=dev-admin -n dev

Node鑒權

節(jié)點鑒權是一種特殊用途的鑒權模式,專門對 kubelet 發(fā)出的 API 請求進行授權,通過--authorization-mode=Node 啟動API服務器開啟

為了獲得節(jié)點鑒權器的授權,kubelet 必須使用一個憑證以表示它在 system:nodes 組中,用戶名為 system:node:<nodeName>

ABAC鑒權

基于屬性的訪問控制(Attribute-based access control - ABAC)定義了訪問控制范例, 其中通過使用將屬性組合在一起的策略來向用戶授予訪問權限

  • 指定策略文件 --authorization-policy-file=SOME_FILENAME

文件內容格式JSON lines,例如:

  • Alice 可以對所有資源做任何事情
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "alice", "namespace": "*", "resource": "*", "apiGroup": "*"}}
  • kubelet 可以讀取任何 pod
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "kubelet", "namespace": "*", "resource": "pods", "readonly": true}}

一般都是使用RBAC + Node鑒權

以上就是Kubernetes訪問控制之鑒權的詳細內容,更多關于Kubernetes訪問控制鑒權的資料請關注腳本之家其它相關文章!

相關文章

  • Kubernetes核心組件實戰(zhàn)解析之API?Server與Scheduler的生產(chǎn)級應用指南

    Kubernetes核心組件實戰(zhàn)解析之API?Server與Scheduler的生產(chǎn)級應用指南

    在Kubernetes集群中,kube-apiserver和kube-scheduler如同機場的塔臺控制系統(tǒng),一個負責全局通信調度,一個專注資源分配優(yōu)化,本文將深入解析這兩個核心組件在生產(chǎn)環(huán)境中的關鍵作用與實戰(zhàn)配置,需要的朋友可以參考下
    2025-03-03
  • K8S中應用無法獲取用戶真實ip問題排查過程

    K8S中應用無法獲取用戶真實ip問題排查過程

    這篇文章主要介紹了K8S中應用無法獲取用戶真實ip問題排查過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-07-07
  • kubernetes存儲之GlusterFS集群詳解

    kubernetes存儲之GlusterFS集群詳解

    最近工作中用到了GlusterFS作為Kubernetes的存儲,這篇文章主要給大家介紹了關于kubernetes存儲之GlusterFS集群的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • k8s容器的內存設置的踩坑記錄

    k8s容器的內存設置的踩坑記錄

    這篇文章主要介紹了k8s容器的內存設置的踩坑記錄,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-07-07
  • K8s容器的定向調度與親和性詳解

    K8s容器的定向調度與親和性詳解

    這篇文章主要介紹了K8s容器的定向調度與親和性,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-07-07
  • Kubernetes有狀態(tài)應用管理StatefulSet使用詳解

    Kubernetes有狀態(tài)應用管理StatefulSet使用詳解

    這篇文章主要為大家介紹了Kubernetes有狀態(tài)應用管理StatefulSet使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • kubernetes日志備份解決ELK中日志丟失問題

    kubernetes日志備份解決ELK中日志丟失問題

    這篇文章主要為大家介紹了kubernetes日志備份方案的細節(jié)探究分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • K8S中設置JVM堆棧大小實現(xiàn)方式

    K8S中設置JVM堆棧大小實現(xiàn)方式

    這篇文章主要介紹了K8S中設置JVM堆棧大小實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-07-07
  • 云原生系列Kubernetes深度解析YAML文件使用

    云原生系列Kubernetes深度解析YAML文件使用

    這篇文章主要為大家介紹了云原生系列Kubernetes深度解析YAML文件使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • 如何在 K8S 中使用 Values 文件定制不同環(huán)境下的應用配置

    如何在 K8S 中使用 Values 文件定制不同環(huán)境下的應用配置

    Kubernetes是一個開源的容器編排平臺,它可以自動化容器的部署、擴展和管理,在 K8s 中,應用程序通常以容器的形式運行,這些容器被組織在不同的資源對象中,這篇文章主要介紹了如何在 K8S 中使用 Values 文件定制不同環(huán)境下的應用配置,需要的朋友可以參考下
    2025-03-03

最新評論

普陀区| 建湖县| 岱山县| 阳朔县| 福安市| 霸州市| 即墨市| 青海省| 滁州市| 峡江县| 麦盖提县| 遂平县| 蒲城县| 讷河市| 兴山县| 会同县| 汤阴县| 延津县| 莱州市| 万源市| 洛川县| 东港市| 阿荣旗| 新宾| 博湖县| 和硕县| 贺州市| 广饶县| 泽州县| 九龙城区| 房产| 昆明市| 琼海市| 湖口县| 旬阳县| 丹棱县| 犍为县| 祁东县| 平谷区| 道孚县| 宿松县|