首页 > 其他分享 >11-1 role和ClusterRole

11-1 role和ClusterRole

时间:2022-11-15 00:03:12浏览次数:41  
标签:11 name namespace role k8s pods ClusterRole authorization

在RBAC API中,一个角色定义了一组特定权限的规则。namespace范围内的角色由Role对象定义,而整个Kubernetes集群范围内有效的角色则通过ClusterRole对象实现。
https://www.jianshu.com/p/9991f189495f


1、Role
Role对象只能用于授予对某一namespace中资源的访问权限。
以下示例表示在“default” namespace中定义一个Role对象,用于授予对资源pods的读访问权限,绑定到该Role的用户则具有get/watch/list pod资源的权限:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  namespace: default
  name: pod-reader
rules:
- apiGroups: [""] # 空字符串""表明使用core API group
  resources: ["pods"]
  verbs: ["get", "watch", "list"]



2、ClusterRole
ClusterRole对象可以授予整个集群范围内资源访问权限, 也可以对以下几种资源的授予访问权限:
集群范围资源(例如节点,即node)
非资源类型endpoint(例如”/healthz”)
跨所有namespaces的范围资源(例如pod,需要运行命令kubectl get pods --all-namespaces来查询集群中所有的pod)

以下示例中定义了一个名为pods-reader的ClusterRole,绑定到该ClusterRole的用户或对象具有用对集群中的资源pods的读访问权限:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
 # 鉴于ClusterRole是集群范围对象,所以这里不需要定义"namespace"字段
 name: pods-reader
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "watch", "list"]


RoleBinding与ClusterRoleBinding
角色绑定将一个角色中定义的各种权限授予一个或者一组用户,则该用户或用户组则具有对应绑定的Role或ClusterRole定义的权限。
角色绑定包含了一组相关主体(即subject, 包括用户——User、用户组——Group、或者服务账户——Service Account)以及对被授予角色的引用。 在某一namespace中可以通过RoleBinding对象授予权限,而集群范围的权限授予则通过ClusterRoleBinding对象完成。


3、RoleBinding
RoleBinding可以将同一namespace中的subject(用户)绑定到某个具有特定权限的Role下,则此subject即具有该Role定义的权限。
下面示例中定义的RoleBinding对象在”default” namespace中将”pod-reader”角色授予用户”Caden”。 这一授权将允许用户”Caden”从”default” namespace中读取pod。

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: read-pods
  namespace: default
subjects:
- kind: User
  name: Caden
 apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io



4、ClusterRoleBinding
ClusterRoleBinding在整个集群级别和所有namespaces将特定的subject与ClusterRole绑定,授予权限。
下面示例中所定义的ClusterRoleBinding 允许在用户组”pods-reader”中的任何用户都可以读取集群中任何namespace中的pods。

kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
 name: read-pods-global
subjects:
- kind: Group
 name: pods-reader
 apiGroup: rbac.authorization.k8s.io
roleRef:
 kind: ClusterRole
 name: pods-reader
 apiGroup: rbac.authorization.k8s.io

kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
 name: read-pods-global
subjects:
- kind: Group
 name: pods-reader
 apiGroup: rbac.authorization.k8s.io
roleRef:
 kind: ClusterRole
 name: pods-reader
 apiGroup: rbac.authorization.k8s.io
此外,RoleBinding对象也可以引用一个ClusterRole对象用于在RoleBinding所在的namespace内授予用户对所引用的ClusterRole中 定义的namespace资源的访问权限。这一点允许管理员在整个集群范围内首先定义一组通用的角色,然后再在不同的名字空间中复用这些角色。

 

标签:11,name,namespace,role,k8s,pods,ClusterRole,authorization
From: https://www.cnblogs.com/skyzy/p/16891017.html

相关文章

  • 2022-11-14 Acwing每日一题
    本系列所有题目均为Acwing课的内容,发表博客既是为了学习总结,加深自己的印象,同时也是为了以后回过头来看时,不会感叹虚度光阴罢了,因此如果出现错误,欢迎大家能够指出错误,我......
  • 11.14 解题报告
    T1考场用时:\(1\)h期望得分:\(70\)pts实际得分:\(20\)pts有一个地方的\(m\)写成了\(n\),直接T飞。对于\(70\)分的做法,考虑设\(dp_{i,j}\)表示分了\(i\)段,现......
  • 11.Series常用属性和方法
    3)Series的基本概念可以把Series看成一个定长的有序字典可以通过shape,size,index,values等得到series的属性可以使用head(),tail()分别查看前n个和后n个值当索引没......
  • 11/14
    利用abc ,得到ef g。 已知什么能求什么?时事,周围的案件,进入环境。亲和力 激情  实力 理想气息 趣味性 融会贯通 多角度思考   系统性 直观......
  • 11.13(P)
    列表While循环rt:for循环rt:    元组rt: 只有一个元素时元组  ......
  • Day11.2:标签的使用
    标签的使用当我们在嵌套语句中,例如当我们在for的嵌套循环语句中,想要终止或重新开始当前循环以外的循环的时候,单独仅靠break和continue和还不够,需要在我们想要作用的循环语......
  • Day11.3:利用for循环打印三角形——思维详解
    利用for循环打印三角形要求:利用for循环打印出以下三角形思路与分析:观察三角形,每一行的左边其实都有打印内容的,只是被空格替换了;将左边空格的部分替换成*,补齐后会得......
  • 11.14.12
    #include<stdio.h>#include<string.h>intmain(){inti,j,l1,l2; chara[100],b[100]; gets(a); gets(b); l1=strlen(a);l2=strlen(b); for(i=l1,j=0;i<l1+l2,j<l2......
  • 探究Kubectl默认使用的Role和Rolebinding,以及如何通过认证和授权的
    默认情况下,我们能很方便地通过kubectl访问集群内的资源。但是你有没有想过,它在访问集群过程中,是如何通过认证和授权过程的,以及在默认开启了RABC时,它使用了什么样的角色和......
  • 11.13;周日;复盘
    复盘记录内容,回顾经验编程学习1.学习方法学习初期,用到啥学啥学习20%的功能即可,不必去深究啥火学啥对于作品,是先完成再完美(编程也是一样的)c语言理论知识指针......