Kubernetes(十八)RBAC一sa

一  ServiceAccount

使用RBAC鉴权

官网文档

sa也是'ns级别'的

顺序

(1)创建一个 ServiceAccount 对象

'命令行的方式'

kubectl create sa wzj-sa -n kube-system

apiVersion: v1
kind: ServiceAccount
metadata:
  name: wzj-sa
  namespace: kube-system

思考:自己创建的sa有啥特性

 kubectl api-resources  -->也可以看资源对应的'APIGROUP',没有显示则表示是'core'

+++++++++++++++++++  '分割线'  +++++++++++++++++++

说明: 常见是'v1',后续可能是v2或'更高级'

kubectl get --raw /api/v1 | jq . -->'看到core核心的资源对象'

core -->/api/v1/${resource_name}

由于'历史原因',是 /api/v1 下的所有内容而不是在 /apis/core/v1 下面

其他  -->/api/${api_group}/v1/

(2)进行绑定

  1 kind: Role
  2 apiVersion: rbac.authorization.k8s.io/v1
  3 metadata:
  4   name: wzj-role
  5   namespace: kube-system
  6 rules:
  7 - apiGroups: ["","apps"]
  8   resources: ["pods","deploy"]
  9   verbs: ["watch","list","get"]
 10 ---
 11 kind: RoleBinding
 12 apiVersion: rbac.authorization.k8s.io/v1
 13 metadata:
 14   name: wzj-rolebinding
 15   namespace: kube-system
 16 roleRef:
 17   apiGroup: rbac.authorization.k8s.io
 18   kind: Role
 19   name: wzj-role
 20 subjects:
 21 - kind: ServiceAccount
 22   name: wzj-sa
 23   namespace: kube-system

(3)如何验证

我们知道'一个 ServiceAccount' 会生成一个 'Secret 对象'和它进行'映射',这个 Secret 里面包含'一个token',我们可以利用这个 token 去'登录 Dashboard',然后我们就可以在 'Dashboard 中来验证'我们的功能'是否符合预期'

利用该token登录Dashboard

上面的'提示信息'说我们现在使用的这个 ServiceAccount '没有权限'获取当前命名空间下面的资源对象,这是因为我们登录进来后'默认跳转到' default 命名空间,我们'切换到 kube-system 命名空间'下面就可以了

现象: UI默认显示的是'default'的资源,显然不能显示,并且无法切换到'kube-system'命名空间,查看资源

原因: 'ns'也是命名空间的,如果要切换'命名空间',首先要'list namespace-->看有才会尝试切换',所以不能

做法: 在对应的'pods-->资源对象'下面加上'delete'的动作即可

根据自己的需求来对'访问用户'的权限进行限制,可以自己通过 Role 定义更加'细粒度的权限',也可以使用'系统内置'的一些权限

------------- '分割线'  -------------

'程序'要访问api-server中对应的'资源对象',就需要声明一个对应的'service_account',sa要'绑定'一个对应的权限

需求:希望有一个全局访问的ServiceAccount

操作所有的'namespace'下所有的资源 --> 'CURD' --> 'cluster scope'

集群级别的 --> 'ClusterRole' 和 'ClusterRoleinding' 过程'省略'

cluster-admin  '权限最大'

Group的描述

表示ceshi命名空间中的'所有ServiceAccount'

subjects:
- kind: Group
  name: system:serviceaccounts:ceshi
  apiGroup: rbac.authorization.k8s.io

+++++++++++'分割线'++++++++++++

'表示整个系统中的所有ServiceAccount'

subjects:
- kind: Group
  name: system:serviceaccounts
  apiGroup: rbac.authorization.k8s.io

(4)用户帐号和服务帐号的区别

(5)Token管理器

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值