欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Kubernetes訪問控制之鑒權(quán)方法詳解

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

RBAC鑒權(quán)

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

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

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

API對象

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

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

Role 定義命名空間內(nèi)權(quán)限,ClusterRole是定義跨命名空間的權(quán)限

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定義的權(quán)限授予用戶/用戶組/服務(wù)賬號 (統(tǒng)稱主體subject)

ClusterRoleBinding 只能將ClusterRole定義的權(quán)限授予用戶/用戶組/服務(wù)賬號(統(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"]

相關(guān)核心內(nèi)置對象

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

1.主體Subject

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

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

2.默認ClusterRole/ClusterRoleBinding

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

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

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

Node鑒權(quán)

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

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

ABAC鑒權(quán)

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

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

文件內(nèi)容格式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鑒權(quán)

以上就是Kubernetes訪問控制之鑒權(quán)的詳細內(nèi)容,更多關(guān)于Kubernetes訪問控制鑒權(quán)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • K8s Pod調(diào)度機制詳解(從理論到生成實戰(zhàn)指南)

    K8s Pod調(diào)度機制詳解(從理論到生成實戰(zhàn)指南)

    Kubernetes調(diào)度機制是集群的智能調(diào)度中樞,主要完成過濾和打分兩個決策,在生產(chǎn)環(huán)境中,核心調(diào)度策略包括資源調(diào)度、親和性調(diào)度、污點與容忍、拓撲分布約束等,本文介紹K8s Pod調(diào)度機制詳解(從理論到生成實戰(zhàn)指南),感興趣的朋友一起看看吧
    2025-03-03
  • Rancher部署配置開源Rainbond云原生應(yīng)用管理平臺

    Rancher部署配置開源Rainbond云原生應(yīng)用管理平臺

    這篇文章主要為大家介紹了Rancher部署配置開源Rainbond云原生應(yīng)用管理平臺,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • k8s跨服務(wù)調(diào)用入門到實戰(zhàn)示例詳解

    k8s跨服務(wù)調(diào)用入門到實戰(zhàn)示例詳解

    這篇文章主要為大家介紹了k8s跨服務(wù)調(diào)用入門到實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • K8S刪除pod的4種方法小結(jié)

    K8S刪除pod的4種方法小結(jié)

    在Kubernetes集群環(huán)境中工作時,有時會遇到需要從一個工作節(jié)點中刪除pod的情況,下面這篇文章主要給大家介紹了關(guān)于K8S刪除pod的4種方法,需要的朋友可以參考下
    2024-01-01
  • k8s設(shè)置非強一致反親和性示例

    k8s設(shè)置非強一致反親和性示例

    這篇文章主要為大家介紹了k8s設(shè)置非強一致反親和性示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • Rainbond自動部署初始化Schema的數(shù)據(jù)庫步驟教程

    Rainbond自動部署初始化Schema的數(shù)據(jù)庫步驟教程

    這篇文章主要為大家介紹了Rainbond自動部署初始化Schema的數(shù)據(jù)庫過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • 使用sealos快速搭建K8s集群環(huán)境的過程

    使用sealos快速搭建K8s集群環(huán)境的過程

    這篇文章主要介紹了使用sealos快速搭建K8s集群環(huán)境,主要包括sealos安裝方法,虛擬機設(shè)置方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • podman容器工具的具體使用

    podman容器工具的具體使用

    本文主要介紹了podman容器工具的具體使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 帶你學(xué)會k8s?更高級的對象Deployment

    帶你學(xué)會k8s?更高級的對象Deployment

    這篇文章主要為大家介紹了k8s還有更高級的"對象"Deployment使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • 如何在Centos中搭建 K8s 1.23 集群

    如何在Centos中搭建 K8s 1.23 集群

    文章詳細介紹了在CentOS上搭建Kubernetes 1.23集群的步驟,包括準備環(huán)境、安裝Kubernetes軟件包、上傳離線鏡像、初始化集群、添加節(jié)點、安裝網(wǎng)絡(luò)插件以及測試驗證,感興趣的朋友一起看看吧
    2025-03-03

最新評論