附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 ...
随机推荐
- TCP的三次握手和四次挥手【经典】
参考:http://blog.csdn.net/cmm0401/article/details/77865479
- Clojure实现的简单短网址服务(Compojure、Ring、Korma库演示样例)
用clojure写了一个简单的短网址服务(一半抄自<Clojure 编程>).在那基础上增加了数据库,来持久化数据. 功能 用Get方法缩短一个网址: 然后在短网址列表就能够查看了, 接下 ...
- 常见信号的模拟仿真(matlab)(spike signal)
1. 一维信号 构造离散时间向量: Fs = 1000; % sampling frequency,采样频率 T = 1/Fs; % sampling period,采样周期 L = 1000; % ...
- WPF_界面_图片/界面/文字模糊解决之道整理
原文:WPF_界面_图片/界面/文字模糊解决之道整理 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010265681/article/detai ...
- Ubuntu安装配置Qt 4.86环境
安装 QT4.8.6库+QT Creator 2.4.1 下载地址公布 QT4.8.6库 http://mirrors.hustunique.com/qt/official_releases/qt/ ...
- WPF Datagrid with some read-only rows - Stack Overflow
原文:WPF Datagrid with some read-only rows - Stack Overflow up vote 21 down vote accepted I had the sa ...
- RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密
原文:RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密 C#在using System.Security.Cryptograph ...
- Android adb你真的会用吗?
前言 本文基于Android官方文档, 以及个人工作的使用经验, 总结下adb的常用用法, 备忘. 1.adb 简介 adb全名Andorid Debug Bridge. 顾名思义, 这是一个Debu ...
- C#如何将十六进制数字符串转byte[]?
代码: /// <summary> /// 16进制原码字符串转字节数组 /// </summary> /// <param name="hexString&q ...
- 基于事件驱动的DDD领域驱动设计框架分享(附源代码)
原文:基于事件驱动的DDD领域驱动设计框架分享(附源代码) 补充:现在再回过头来看这篇文章,感觉当初自己偏激了,呵呵.不过没有以前的我,怎么会有现在的我和现在的enode框架呢?发现自己进步了真好! ...