附006.Kubernetes RBAC授权
一 RBAC介绍
1.1 RBAC授权
- Role
- ClusterRole
- RoleBinding
- ClusterRoleBinding

二 RBAC详解
2.1 Role 和 ClusterRole
1 [root@k8smaster01 study]# vi pod-reader-Role.yaml
2 apiVersion: rbac.authorization.k8s.io/v1
3 kind: Role
4 metadata:
5 namespace: default
6 name: pod-reader
7 rules:
8 - apiGroups: [""] # "" indicates the core API group
9 resources: ["pods"] #资源类型
10 verbs: ["get", "watch", "list"] #操作类型
- 集群范围的资源(如nodes);
- non-resource endpoints(如“/healthz”);
- 跨所有命名空间(可通过kubectl get pods --all-namespaces查看)的命名空间资源(如pods)。
1 [root@k8smaster01 study]# vi secret-reader-ClusterRole.yaml
2 apiVersion: rbac.authorization.k8s.io/v1
3 kind: ClusterRole
4 metadata:
5 # 因为ClusterRoles是针对所有命名空间,因此省略了“命名空间”。
6 name: secret-reader
7 rules:
8 - apiGroups: [""]
9 resources: ["secrets"] #资源类型
10 verbs: ["get", "watch", "list"] #操作类型
2.2 RoleBinding 和 ClusterRoleBinding
1 kind: RoleBinding
2 apiVersion: rbac.authorization.k8s.io/v1
3 metadata:
4 name: read-pods
5 namespace: default #普通角色绑定指定namespace
6 subjects: #主体参数
7 - kind: User #指定主体类型为user
8 name: jane #指定user用户名
9 apiGroup: rbac.authorization.k8s.io
10 roleRef: #角色引用
11 kind: Role #类型为普通角色
12 name: pod-reader #角色名
13 apiGroup: rbac.authorization.k8s.io
1 [root@k8smaster01 study]# vi dave_RoleBinding.yaml
2 kind: RoleBinding
3 apiVersion: rbac.authorization.k8s.io/v1
4 metadata:
5 name: read-secrets
6 namespace: development #指定特定的命名空间
7 subjects: #主体参数
8 - kind: User #指定主体类型为user
9 name: dave #指定user用户名
10 apiGroup: rbac.authorization.k8s.io
11 roleRef: #角色引用
12 kind: ClusterRole #类型为集群角色
13 name: secret-reader #角色名
14 apiGroup: rbac.authorization.k8s.io
1 [root@k8smaster01 study]# vi manager_ClusterRoleBinding.yaml
2 kind: ClusterRoleBinding
3 apiVersion: rbac.authorization.k8s.io/v1
4 metadata:
5 name: read-secrets-global
6 subjects: #主体参数
7 - kind: Group #指定主体类型为group
8 name: manager #指定group组名
9 apiGroup: rbac.authorization.k8s.io
10 roleRef: #角色引用
11 kind: ClusterRole #类型为集群角色
12 name: secret-reader #角色名
13 apiGroup: rbac.authorization.k8s.io
2.3 默认角色
三 资源与主体
3.1 资源介绍
1 [root@k8smaster01 study]# vi pod-and-pod_log.yaml
2 kind: Role
3 apiVersion: rbac.authorization.k8s.io/v1
4 metadata:
5 namespace: default
6 name: pod-and-pod-logs-reader
7 rules:
8 - apiGroups: [""]
9 resources: ["pods","pods/log"]
10 verbs: ["get","list"]
1 [root@k8smaster01 study]# vi updater_configmap.yaml
2 kind: Role
3 apiVersion: rbac.authorization.k8s.io/v1
4 metadata:
5 namespace: default
6 name: configmap-updater
7 rules:
8 - apiGroups: [""]
9 resources: ["configmaps"]
10 resourceNames: ["my-configmap"]
11 verbs: ["update","get"]
3.2 主体介绍
1 subjects:
2 - kind: User
3 name: "alice@example.com"
4 apiGroup: rbac.authorization.k8s.io
1 subjects:
2 - kind: Group
3 name: "frontend-admins"
4 apiGroup: rbac.authorization.k8s.io
1 subjects:
2 - kind: ServiceAccount
3 name: default
4 namespace: kube-system
1 subjects:
2 - kind: Group
3 name: system:serviceaccounts:qa
4 apiGroup: rbac.authorization.k8s.io
1 subjects:
2 - kind: Group
3 name: system:serviceaccounts
4 apiGroup: rbac.authorization.k8s.io
1 subjects:
2 - kind: Group
3 name: system:authenticated
4 apiGroup: rbac.authorization.k8s.io
1 subjects:
2 - kind: Group
3 name: system:unauthenticated
4 apiGroup: rbac.authorization.k8s.io
1 subjects:
2 - kind: Group
3 name: system:authenticated
4 apiGroup: rbac.authorization.k8s.io
5 - kind: Group
6 name: system:unauthenticated
7 apiGroup: rbac.authorization.k8s.io
四 角色相关命令
4.1 创建角色
4.2 创建集群角色

4.3 权限和角色绑定
4.4 权限和集群角色绑定
4.5 相关对比


五 服务账户权限
5.1 服务账户
5.2 服务账号授权
- 授予角色给一个指定Pod的服务帐户
1 kubectl create rolebinding my-sa-view \
2 --clusterrole=view \
3 --serviceaccount=my-namespace:my-sa \
4 --namespace=my-namespace
- 在一个命名空间授予“view”集群角色给“default”服务帐户
1 kubectl create rolebinding default-view \
2 --clusterrole=view \
3 --serviceaccount=my-namespace:default \
4 --namespace=my-namespace
1 kubectl create clusterrolebinding add-on-cluster-admin \
2 --clusterrole=cluster-admin \
3 --serviceaccount=kube-system:default
- 在一个命名空间中,授予角色给所有的服务帐户
1 kubectl create rolebinding serviceaccounts-view \
2 --clusterrole=view \
3 --group=system:serviceaccounts:my-namespace \
4 --namespace=my-namespace
- 在整个集群中授予一个角色给所有的服务帐户 (不推荐)
1 kubectl create clusterrolebinding serviceaccounts-view \
2 --clusterrole=view \
3 --group=system:serviceaccounts
- 在整个集群中授予超级用户访问所有的服务帐户 (强烈不推荐)
1 kubectl create clusterrolebinding serviceaccounts-cluster-admin \
2 --clusterrole=cluster-admin \
3 --group=system:serviceaccounts
- 宽松的RBAC权限(致命危险)
1 kubectl create clusterrolebinding permissive-binding \
2 --clusterrole=cluster-admin \
3 --user=admin \
4 --user=kubelet \
5 --group=system:serviceaccounts
附006.Kubernetes RBAC授权的更多相关文章
- Kubernetes RBAC授权普通用户对命名空间访问权限
Kubernetes RBAC授权普通用户对命名空间访问权限 官方文档:https://www.cnblogs.com/xiangsikai/p/11413970.html kind: Role ap ...
- 附007.Kubernetes ABAC授权
一 ABAC 1.1 ABAC授权 基于属性的访问控制(ABAC)定义了访问控制范例,通过使用将属性组合在一起的策略向用户授予访问权限. 使用--authorization-policy-file=S ...
- 附024.Kubernetes全系列大总结
Kubernetes全系列总结如下,后期不定期更新.欢迎基于学习.交流目的的转载和分享,禁止任何商业盗用,同时希望能带上原文出处,尊重ITer的成果,也是尊重知识.若发现任何错误或纰漏,留言反馈或右侧 ...
- 附004.Kubernetes Dashboard简介及使用
一 Kubernetes dashboard简介 1.1 Web UI简介 dashboard是基于Web的Kubernetes用户界面.可以使用dashboard将容器化应用程序部署到Kuberne ...
- 16. kubernetes RBAC
16. kubernetes RBAC授权插件: Node,ABAC,RBAC,webhock RBAC: role based access contrl 基于角色的授权. 角色:(role)许可( ...
- Service Account和RBAC授权
一.介绍 Service Account概念的引入是基于这样的使用场景:运行在pod里的进程需要调用Kubernetes API以及非Kubernetes API的其它服务.Service Accou ...
- 这些用来审计 Kubernetes RBAC 策略的方法你都见过吗?
原文链接:这些用来审计 Kubernetes RBAC 策略的方法你都见过吗? 认证与授权对任何安全系统来说都至关重要,Kubernetes 也不例外.即使我们不是安全工作人员,也需要了解我们的 Ku ...
- 附010.Kubernetes永久存储之GlusterFS超融合部署
一 前期准备 1.1 基础知识 在Kubernetes中,使用GlusterFS文件系统,操作步骤通常是: 创建brick-->创建volume-->创建PV-->创建PVC--&g ...
- 附014.Kubernetes Prometheus+Grafana+EFK+Kibana+Glusterfs整合解决方案
一 glusterfs存储集群部署 注意:以下为简略步骤,详情参考<附009.Kubernetes永久存储之GlusterFS独立部署>. 1.1 架构示意 略 1.2 相关规划 主机 I ...
随机推荐
- jQuery中的Deferred和promise
promise:http://www.alloyteam.com/2014/05/javascript-promise-mode/ 1 jQuery 中的 Deferred 和 Promises : ...
- 本机Ajax异步通信
昨天我们用JQuery.Ajax解释JQuery样通过Ajax实现异步通信.为了更好的编织知识网,今天我们用一个Demo演示怎样用javascript实现原生Ajax的异步通信. 原生Ajax实现异步 ...
- Python 金融数据分析 (一)—— 股票数据
1. tushare 库 tushare 的官网请见:TuShare -财经数据接口包,是国人自己开发的 Python 爬数据工具(所谓的爬,自然就是在线连网获取数据),囊括股票.期货.宏观经济.电影 ...
- 采用Fiddler建立Asp.net webapi与Android/IOS调试环境
最近,他们正在做Android+Asp.net WebApi练习,通过发现visual studio debug模式启动Asp.net之后,无法响应Android寄过来http求,设置一个很好的休息不 ...
- NAT对于网络上的其它人都不可见(但可以转发端口),Bridged和网络里的其它物理机没区别,Internal只能在虚拟机之间可见,Host-only只对主机可见(最符合我的服务器需求),最多可设置8块网卡实现混杂
VirtualBox 可以为每一个虚拟机分配8个网卡.每一个网卡的连接方式可以选为下列之一: Not attached Network Address Translation (NAT) Bridge ...
- Beginner’s Tutorial: 3D Line and Border Effects in XAML
This mini-tutorial might be for you if you’re having troubles finding the right line colors to achie ...
- linq to entity GroupBy多个字段
var items = _voteRecordRepository.GetAll() .Where(x => programIds.Contains(x.ProgrammeId)) .Group ...
- 使用aws和tomcat搭建服务器过程中的一些坑.
在国外没啥事做, 考前也不愿意复习, 看到aws能免费试用一年, 于是就试着搞了搞, 就准备搭建个个人网站玩玩. aws的注册与创建实例 首先个人感觉这个东西使用起来还是很方便的, 一开始注册完验证完 ...
- WPF TreeView绑定xaml的写法
方法一 <Window x:Class="TreeViewDemo.MainWindow" xmlns="http://schemas.microsoft.com/ ...
- WPF属性(二)附加属性
原文:WPF属性(二)附加属性 附加属性是说一个属性本来不属于某个对象,但由于某种需求而被后来附加上,也就是把对象放入一个特定环境后对象才具有的属性就称为附加属性,附加属性的作用就是将属性与数据类型解 ...