首页 > 其他分享 >11-2 rbac

11-2 rbac

时间:2022-11-15 00:03:48浏览次数:38  
标签:11 kubectl get -- myuser rbac role pods

授权插件:node ,ABAC,RBAC,webhook
rbac: role-based ac:基于角色授权,k8s1.6起默认使用基于角色的访问控制
ABAC:基于属性的访问控制

角色: Role、ClusterRole
权限:读get、写write、更新update、列出list、监视watch
账户:用户账户、服务账户
角色绑定:Role、ClusterRole、RoleBinding、ClusterRoleBinding

namespace级别的授权:
role:
    operation
    objects
rolebinding:
    user account or service account
    role
集群级别的授权:clusterrole,clusterrolebinding
创建role:
#kuebctl create role pods-reader --verb=get,list,watch --resource=pods
#kuebctl create role pods-reader --verb=get,list,watch --resource=pods --dry-run
#kuebctl create role pods-reader --verb=get,list,watch --resource=pods --dry-run -oyaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata: 
    name: pods-reader
    namespace: default
rules:
- apiGroups:
  - ""
   resources:
   - pods
   verbs:
   - get
   - list
   - watch
# kubectl get role

给创建的账号(如myuser)绑定role:
#kubectl create rolebinding myuser-read-pods --role=pods-reader --user=myuser
#kubectl create rolebinding myuser-read-pods --role=pods-reader --user=myuser --try-run -oyaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
    name: myuser-read-pods
    namespace: default
roleRef:
    apiGroup: rbac.authorization.k8s.io
    kind: role
    name: pods-reader
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: myuser

# kubectl get rolebinding  

# kubectl config view  #查看当前已有的用户账号  
切换到某用户
# kubectl config user-context myuser@xxxx
# kubectl get pods 


给创建的账号(如myuser)绑定clusterrole:
# kubectl create clusterrolebinding myuser-read-all-pods --clusterrole=cluster-reader --user=myuser  --dry-run -oyaml
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
    name: myuser-read-all-pods
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-reader
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: myuser

# kubectl get clusterrole
# kubectl get clusterrolebinding

相关命令行工具
获取并查看Role/ClusterRole/RoleBinding/ClusterRoleBinding的信息:

kubectl get role -n kube-system
查看kube-system namespace下的所有role:
kubectl get role <role-name> -n kube-system -o yaml
查看某个role定义的资源权限:
kubectl get rolebinding -n kube-system
查看kube-system namespace下所有的rolebinding:
kubectl get rolebinding <rolebind-name> -n kube-system -o yaml
查看集群所有的clusterrole:

kubectl get clusterrole

查看kube-system namespace下的某个rolebinding详细信息(绑定的Role和subject):


kubectl get clusterrole <clusterrole-name> -o yaml
查看所有的clusterrolebinding:
kubectl get clusterrolebinding

查看某个clusterrole定义的资源权限详细信息:


kubectl get clusterrolebinding <clusterrolebinding-name> -o yaml

有两个kubectl命令可以用于在命名空间内或者整个集群内授予角色。

kubectl create rolebinding
在某一特定名字空间内授予Role或者ClusterRole。示例如下:
a) 在名为”acme”的名字空间中将admin ClusterRole授予用户”bob”:
kubectl create rolebinding bob-admin-binding --clusterrole=admin --user=bob --namespace=acme
b) 在名为”acme”的名字空间中将view ClusterRole授予服务账户”myapp”:
kubectl create rolebinding myapp-view-binding --clusterrole=view --serviceaccount=acme:myapp --namespace=acme

kubectl create clusterrolebinding
在整个集群中授予ClusterRole,包括所有名字空间。示例如下:
a) 在整个集群范围内将cluster-admin ClusterRole授予用户”root”:
kubectl create clusterrolebinding root-cluster-admin-binding --clusterrole=cluster-admin --user=root
b) 在整个集群范围内将system:node ClusterRole授予用户”kubelet”:
kubectl create clusterrolebinding kubelet-node-binding --clusterrole=system:node --user=kubelet
c) 在整个集群范围内将view ClusterRole授予名字空间”acme”内的服务账户”myapp”:
kubectl create clusterrolebinding myapp-view-binding --clusterrole=view --serviceaccount=acme:myapp

 

标签:11,kubectl,get,--,myuser,rbac,role,pods
From: https://www.cnblogs.com/skyzy/p/16891019.html

相关文章

  • 11-1 role和ClusterRole
    在RBACAPI中,一个角色定义了一组特定权限的规则。namespace范围内的角色由Role对象定义,而整个Kubernetes集群范围内有效的角色则通过ClusterRole对象实现。https://www.j......
  • 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......
  • 11.13;周日;复盘
    复盘记录内容,回顾经验编程学习1.学习方法学习初期,用到啥学啥学习20%的功能即可,不必去深究啥火学啥对于作品,是先完成再完美(编程也是一样的)c语言理论知识指针......