Kubernetes 权限管理
1. 概述
Kubernetes 中用户分登陆用户和 service account。登陆用户可通过 kubectl config 查看上下文,以及当前上下文:
[root@chunqiu ~ (Master)]# kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority: /etc/kubernetes/ssl/ca.pem
server: https://k8s-apiserver:8443
name: bcmt-kubernetes
contexts:
- context:
cluster: bcmt-kubernetes
namespace: default
user: kubectl
name: kubectl-context
current-context: kubectl-context
kind: Config
preferences: {}
users:
- name: kubectl
user:
client-certificate: /etc/kubernetes/ssl/cluster-admin.pem
client-key: /etc/kubernetes/ssl/cluster-admin-key.pem
可以在当前上下文中通过 --user 选项使用其它用户访问当前上下文。
serviceaccout 是默认命名空间就会创建,如果不显示指定 serviceaccount,kubernetes 会为 pod 配置默认 serviceaccount。
serviceaccount 是进程访问 APIServer 的方式,那进程有什么权限访问呢?这就涉及到鉴权了,kubernetes 有多种鉴权方式,RBAC 是常见的鉴权方式,RBAC 定义了进程及用户能够以什么方式访问 kubernetes 的哪些资源。RBAC 和 serviceaccount 之间的桥梁即是 rolebinding。
通过鉴权的访问请求最后会进入到准入控制插件的“筛查”,准入控制插件会配置 pod 的相关信息,如果缺省配置默认值,如果有查看是否准入等。
根据对 APIServer 不同层面的访问,APIServer 会提示不一样的报错,鉴权失败,权限不够等等。
psp 是准入控制的插件之一,配置了集群内 pod 的安全属性。
2. 环境实践
[root@chunqiu ~ (Master)]# kubectl describe clusterrolebindings.rbac.authorization.k8s.io all:psp:restricted
Name: all:psp:restricted
Labels: <none>
Annotations: <none>
Role:
Kind: ClusterRole
Name: psp:restricted
Subjects:
Kind Name Namespace
---- ---- ---------
Group system:serviceaccounts
Group system:authenticated
// 注意这里以组为单位,通过 APIServer 鉴权的 serviceaccount 和 kubectl user 将被添加到 group system:serviceaccounts 和 system:authenticated 中,使得组内的“用户”天然用上了 psp 的 security 属性。
[root@chunqiu ~ (Master)]# kubectl describe clusterroles.rbac.authorization.k8s.io psp:restricted
Name: psp:restricted
Labels: <none>
Annotations: <none>
PolicyRule:
Resources Non-Resource URLs Resource Names Verbs
--------- ----------------- -------------- -----
podsecuritypolicies.extensions [] [restricted] [use]
[root@chunqiu ~ (Master)]# kubectl get psp
NAME PRIV CAPS SELINUX RUNASUSER FSGROUP SUPGROUP READONLYROOTFS VOLUMES
...
restricted true NET_ADMIN,SYS_RAWIO,SYS_NICE,SYS_RESOURCE,SYS_TIME,IPC_LOCK,NET_RAW,IPC_OWNER,NET_BIND_SERVICE,DAC_OVERRIDE,KILL,CHOWN,FOWNER,SETUID,SETGID,MKNOD RunAsAny RunAsAny RunAsAny RunAsAny false configMap,emptyDir,projected,secret,downwardAPI,persistentVolumeClaim,hostPath
[root@chunqiu ~ (Master)]# kubectl get clusterrolebindings.rbac.authorization.k8s.io | grep restricted
all:psp:restricted ClusterRole/psp:restricted 152d
harbor-harbor:psp:restricted ClusterRole/psp:restricted 152d
[root@chunqiu ~ (Master)]# kubectl describe clusterrolebindings.rbac.authorization.k8s.io harbor-harbor:psp:restricted
Name: harbor-harbor:psp:restricted
Labels: <none>
Annotations: <none>
Role:
Kind: ClusterRole
Name: psp:restricted
Subjects:
Kind Name Namespace
---- ---- ---------
ServiceAccount harbor-harbor-serviceaccount ncms
参考文章:
Controlling Access to the Kubernetes API
Cluster Administration
Kubernetes 权限管理的更多相关文章
- kubernetes用户权限管理工具permission-manager
Permission Manager Permission Manager是一个为Kubernetes RBAC和用户管理提供Web UI的项目,为Kubernetes权限管理提供友好的可视化界面. ...
- 理解OpenShift(4):用户及权限管理
理解OpenShift(1):网络之 Router 和 Route 理解OpenShift(2):网络之 DNS(域名服务) 理解OpenShift(3):网络之 SDN 理解OpenShift(4) ...
- Android权限管理之RxPermission解决Android 6.0 适配问题
前言: 上篇重点学习了Android 6.0的运行时权限,今天还是围绕着Android 6.0权限适配来总结学习,这里主要介绍一下我们公司解决Android 6.0权限适配的方案:RxJava+RxP ...
- Android权限管理之Android 6.0运行时权限及解决办法
前言: 今天还是围绕着最近面试的一个热门话题Android 6.0权限适配来总结学习,其实Android 6.0权限适配我们公司是在今年5月份才开始做,算是比较晚的吧,不过现在Android 6.0以 ...
- Android权限管理之Permission权限机制及使用
前言: 最近突然喜欢上一句诗:"宠辱不惊,看庭前花开花落:去留无意,望天空云卷云舒." 哈哈~,这个和今天的主题无关,最近只要不学习总觉得生活中少了点什么,所以想着围绕着最近面试过 ...
- SpringMVC+Shiro权限管理【转】
1.权限的简单描述 2.实例表结构及内容及POJO 3.Shiro-pom.xml 4.Shiro-web.xml 5.Shiro-MyShiro-权限认证,登录认证层 6.Shiro-applica ...
- Android6.0运行时权限管理
自从Android6.0发布以来,在权限上做出了很大的变动,不再是之前的只要在manifest设置就可以任意获取权限,而是更加的注重用户的隐私和体验,不会再强迫用户因拒绝不该拥有的权限而导致的无法安装 ...
- Oracle 表空间和用户权限管理
一. 表空间 Oracle数据库包含逻辑结构和物理结构. 数据库的物理结构指的是构成数据库的一组操作系统文件. 数据库的逻辑结构是指描述数据组织方式的一组逻辑概念以及它们之间的关系. 表空间是数据库逻 ...
- [Django]用户权限学习系列之权限管理界面实现
本系列前三章: http://www.cnblogs.com/CQ-LQJ/p/5604331.htmlPermission权限基本操作指令 http://www.cnblogs.com/CQ-LQJ ...
- [Django]用户权限学习系列之设计自有权限管理系统设计思路
若在阅读本片文章遇到权限操作问题,请查看本系列的前两章! http://www.cnblogs.com/CQ-LQJ/p/5609690.html和http://www.cnblogs.com/CQ- ...
随机推荐
- 使用 FastEndpoints 来垂直切换Web API的控制器方法
在我们开发项目的Web API的时候,随着项目功能要求越来越多,可能我们会为控制器基类增加越来越多的基础功能,有些功能有一定的适应性,但可能在一般的子类中用不到,而随着对控制器控制要求越来越精细,那么 ...
- 安卓app填写域名和端口后点击保存没有反应(填错注册信息)
解决方法:域名填写错误导致(仔细检查填写的域名和端口是否正常,注册的信息是否与填写的一致) 域名是:3q9l302537.wicp.vip 中间有个字母 l 不是数字 1 填写成了:3q91302 ...
- Tomcat自动化脚本
/bin/bash war包名称 war_name="tchg.war" 要上传war包指定目录 war_dir="/usr/local/src/tchg" 工 ...
- JavaScript this 绑定详解
函数内 this 绑定 函数内this的绑定和函数定义的位置没有关系,和调用的方式和调用位置有关系,函数内的this是在被调用执行时被绑定的. this的具体绑定规则 this 绑定基本包含下面4种绑 ...
- maven 实现pb的实时编译
<properties> <protobuf.version>3.15.7</protobuf.version></properties> <ex ...
- 绝了,华为云服务器“The 3”出道,每款都很能打
近年来,随着企业上云转型.互联网信息产业技术不断发展与革新,云服务器在主机市场逐渐占领主导地位,云服务器品牌层出不穷,各家云厂商都想占据一席之地,这也就对各云厂商的提供的云服务器算力和云端服务能力的要 ...
- 大数据实践解析(上):聊一聊spark的文件组织方式
摘要: 在大数据/数据库领域,数据的存储格式直接影响着系统的读写性能.Spark针对不同的用户/开发者,支持了多种数据文件存储方式.本文的内容主要来自于Spark AI Summit 2019中的一个 ...
- 华为云GaussDB圈层活动走进香港,以技术创新构筑金融政企数智发展基石
摘要:近日,华为云GaussDB圈层活动在中国·香港如期举办,活动聚集了22家香港金融政企客户和合作伙伴. 本文分享自华为云社区<华为云GaussDB圈层活动走进香港,赋能金融政企数字化转型&g ...
- Copy攻城狮辛酸史:含泪“一分钟”跑通MindSpore的LeNet模型
摘要:一个Cope 攻城狮用切身实例告诉你: Cope代码体验一时爽,BUG修改花半天. 前言:此文为r0.7-beta的操作实践,为什么我的眼里常含泪水,因为我对踩坑这件事爱得深沉.谨以此文献给和我 ...
- GaussDB(for MySQL)如何在存储架构设计上做到高可靠、高可用
摘要: GaussDB(for MySQL)通过ND算子下推解决存储节点和计算节点之间的传输速度,减少网络开销这个难题. 数据库作为高效稳定处理海量数据交易/分析的坚强数据底座,底层架构设计的重要性不 ...