附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 ...
随机推荐
- MySQL 第七天(核心优化一)
一.Mysql核心优化 1. 优化的方面 ① 存储层:数据表"存储引擎"选取.字段选取.逆范式(3范式) ② 设计层:索引.分区/分表 ③ 架构层:分布式部署(主从模式/共享) ④ ...
- mysql在ubuntu下的安装
如果是调用的apt-get 那么应该是sudo apt-get install mysql-server-core-5.6 mysql-server-5.6 mysql-common-5.6 mys ...
- SqlServerProxy的一些资料
SqlServerProxy的一些资料 下载地址:http://files.cnblogs.com/files/lyhabc/SqlServerProxy.rar 1.特性及实现原理 SqlServe ...
- embarcadero radstudio xe5 正式版 下载地址
http://altd.embarcadero.com/download/radstudio/xe5/delphicbuilder_xe5_win.iso
- MySQL基于实例sales创建自定义函数、视图、存储过程及触发器
实例:数据库sales 1.客户表(Customer) 客户编号(CusNo) 姓名(CusName) 地址(Address) 电话(Tel) C001 杨婷 北京 010-5328953 C002 ...
- Map的遍历方法及String和其它类型的相互转化
Map的遍历方法: package com.lky.test; import java.util.HashMap; import java.util.Iterator; import java.uti ...
- linux 输入输出重定向
输入输出重定向 1,输入输出重定向,是针对过滤器的,不针对,编辑器和交互工具 2,>号只把正确的标准输出重定向,输出错误信息,可以用2> 3,新建或清空文件可以直接用>filenam ...
- File I/O
File I/O Introduction We'll start our discussion of the UNIX System by describing the functions ...
- 用户和用户组y哦不过y哦那个好
一.用户和用户组的简介? 介绍:https://blog.csdn.net/Na2Co3_Ren/article/details/74502309 二.用户可以分为3类? 1.主人:所有者的名字 2. ...
- Replication基础(六) 复制中的三个线程(IO/SQL/Dump)
Reference: https://blog.csdn.net/sun_ashe/article/details/82181811?utm_source=blogxgwz1 简介在MySQL复制技 ...