亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

RBAC鑒權(quán)

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

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

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

API對(duì)象

RBAC API 聲明了四種 Kubernetes 對(duì)象:Role、ClusterRoleRoleBindingClusterRoleBinding

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,無(wú)須指定,代表集群級(jí)別
  name: pod-reader
rules:
- apiGroups: [""]             #"" indicates the core API group 具體參考kubectl api-resources
  resources: ["pods"]         # 資源names, 子資源例子:["pods/log"]
  verbs: ["get", "watch", "list"]  #允許動(dòng)作

如果是Role,代表能訪問(wèn)default空間下的所有Pod,如果是ClusterRolo代表能訪問(wèn)所有空間下的Pod

-指定固定某個(gè)資源名稱

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

-指定非資源端點(diǎn)

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

RoleBinding 將Role定義的權(quán)限授予用戶/用戶組/服務(wù)賬號(hào) (統(tǒng)稱主體subject)

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

 一個(gè) 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: [] # 控制面自動(dòng)填充這里的規(guī)則
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: monitoring-endpoints
  labels:
    rbac.example.com/aggregate-to-monitoring: "true"
# 當(dāng)你創(chuàng)建 "monitoring-endpoints" ClusterRole 時(shí),
# 下面的規(guī)則會(huì)被添加到 "monitoring" ClusterRole 中
rules:
- apiGroups: [""]
  resources: ["services", "endpointslices", "pods"]
  verbs: ["get", "list", "watch"]

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

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

1.主體Subject

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

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

2.默認(rèn)ClusterRole/ClusterRoleBinding

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

如果要禁用匿名的未經(jīng)過(guò)身份驗(yàn)證的用戶訪問(wèn),請(qǐng)?jiān)?API 服務(wù)器配置中中添加 --anonymous-auth=false 的配置選項(xiàng)

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

Node鑒權(quán)

節(jié)點(diǎn)鑒權(quán)是一種特殊用途的鑒權(quán)模式,專門(mén)對(duì) kubelet 發(fā)出的 API 請(qǐng)求進(jìn)行授權(quán),通過(guò)--authorization-mode=Node 啟動(dòng)API服務(wù)器開(kāi)啟

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

ABAC鑒權(quán)

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

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

文件內(nèi)容格式JSON lines,例如:

  • Alice 可以對(duì)所有資源做任何事情
{"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訪問(wèn)控制之鑒權(quán)的詳細(xì)內(nèi)容,更多關(guān)于Kubernetes訪問(wèn)控制鑒權(quán)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    podman容器工具的具體使用

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

    帶你學(xué)會(huì)k8s?更高級(jí)的對(duì)象Deployment

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

    如何在Centos中搭建 K8s 1.23 集群

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

最新評(píng)論