kubernetes Authorization
2019独角兽企业重金招聘Python工程师标准>>>
kubernetes Authorization 博客分类: Kubernetes
kubernetes授权设置
在kubernetes中授权 和 认证是各自独立的部分。认证部分参见 kubernetes认证。
授权操作适用于所有面向于kubernetes api的http请求。
授权 将会针对每一个请求,根据访问策略来检查对比请求中的属性信息(比如 用户,资源,namespace等)。一个API请求必须满足指定的策略才能继续执行。
有如下几种策略方式:
- --authorization_mode=AlwaysDeny
- --authorization_mode=AlwaysAllow
- --authorization_mode=ABAC
AlwaysDeny 阻止所有请求(通常用在测试环境);AlwaysAllow允许所有请求,如果不想用授权机制可以这么设置;ABAC允许用户自定义的授权策略,ABAC的全写为:Attribute-Based Access Control(面向属性的授权控制)。
ABAC Mode
请求属性
在授权设置中,可以用到的属性设置有4个:
- user ,已经被认证的用户;
- 请求是否是只读的;
- 被请求的资源是什么,只接受针对api endpoint的请求,如/api/v1/namespaces/default/pods,对于其他的endpoint,如/version,资源描述则为空string;
- 访问对象的namespace,如果访问的对象不支持namespace,则为空string
授权文件格式
设置参数为: --authorization_policy_file=SOME_FILENAME,这样便开启ABAC模式。 在指定的文件中,一行为一个json对象,这个json对象包含几个map格式,这些map对象有如下:
- user,string类型,对应--token_auth_file 中的user属性;
- readonly,bool类型,当设置为true时,只接受GET请求;
- resource,string类型,请求URL中对应的资源类型,如pod;
- namespace,string类型,对应namespace。
如果属性没有设置,那么默认值为0 或 false 或 空string。
授权算法
一个请求中设置的属性决定了这个请求所能拥有的特性(好绕~)
当收到一个请求,就获取了这个请求应该拥有的相应特性,如果某些属性没有设置,那么会默认设置为这个属性类型对应的空值,如0,false,空string 等。
如果在授权文件中某个属性被重复定义了,那么只要有一个满足授权条件,那么这个请求就被认为是被授权的。
如果在授权条件中将user设置为空,那么不会对任何用户做限制; 如果在授权条件中奖namespace设置为空,那么不对任何namespace做限制。
Examples
- {"user":"alice"}:
用户alice 可以做任何事! - {"user":"kubelet", "resource": "pods", "readonly": true}:
kubelet可以GET任何pod的信息。 - {"user":"kubelet", "resource": "events"}:
kubelet可以对events做任何读写操作。 - {"user":"bob", "resource": "pods", "readonly": true, "ns": "projectCaribou"}:
Bob 仅仅能GET处于namespace projectCaribou下的pod。
kubernetes认证设置kubernetes中,验证用户是否有权限操作api的方式有三种:证书认证,token认证,基本信息认证。证书认证设置apiserver的启动参数:--client_ca_file=SOMEFILE ,这个被引用的文件中包含的验证client的证书,如果被验证通过,那么这个验证记录中的主体对象将会作为请求的username。token认证设置apiserver的启动参数:--token_auth_file=SOMEFILE,目前使用token还存在争议,而且如果变更了这个文件内容,只有重启apiserver才能使配置生效。token file的格式包含三列:token,username,userid。当使用token作为验证方式时,在对apiserver的http请求中,增加一个Header字段:Authorization ,将它的值设置为:Bearer SOMETOKEN。基本信息认证设置apiserver的启动参数:--basic_auth_file=SOMEFILE,如果更改了文件中的密码,只有重新启动apiserver使其重新生效。其文件的基本格式包含三列:passwork,username,userid。当使用此作为认证方式时,在对apiserver的http请求中,增加一个Header字段:Authorization ,将它的值设置为: Basic BASE64ENCODEDUSER:PASSWORD.
https://segmentfault.com/a/1190000002919433?utm_source=tuicool
http://www.coin163.com/it/x2700960886745827433/kubernetes-authentication-herman-liu
转载于:https://my.oschina.net/xiaominmin/blog/1598573
kubernetes Authorization相关推荐
- Controlling Access to the Kubernetes API
更多关于kubernetes的深入文章,请看我csdn或者oschina的博客主页. API Server Ports and IPs By default the Kubernetes API se ...
- iam身份验证以及访问控制_如何将受限访问IAM用户添加到EKS群集
iam身份验证以及访问控制 介绍 (Introduction) Elastic Kubernetes Service (EKS) is the fully managed Kubernetes ser ...
- 再战 k8s(十八):RKE
RKE 简介 Rancher Kubernetes Engine,简称 RKE,是一个经过 CNCF 认证的 Kubernetes 安装程序.RKE 支持多种操作系统,包括 MacOS.Linux 和 ...
- kubernetes访问控制——Authentication认证、Authorization授权、服务账户的自动化
文章目录 1.kubernetes API 访问控制 2. Authentication(认证) 1.创建serviceaccount 2.添加secrets到serviceaccount 3.把se ...
- Kubernetes 网络排错指南
本文介绍各种常见的网络问题以及排错方法,包括 Pod 访问异常.Service 访问异常以及网络安全策略异常等. 说到 Kubernetes 的网络,其实无非就是以下三种情况之一 Pod 访问容器外部 ...
- kubernetes学习笔记之十三:基于calico的网络策略入门
一..安装calico [root@k8s-master01 ~]# kubectl apply -f https://docs.projectcalico.org/v3.3/getting-star ...
- 在Kubernetes v1.8中使用RBAC
Kubernetes 1.8一个重要里程碑是推出了基于角色的访问控制(RBAC)授权,在这个版本中被提升为GA.RBAC是一种控制访问Kubernetes API的机制,因为在1.6中推出beta版, ...
- kubernetes Helm
Helm产生原因 利用Kubernetes部署一个应用,需要Kubernetes原生资源文件如deployment.replicationcontroller.service或pod 等.而对于一个复 ...
- Kubernetes之路 2 - 利用LXCFS提升容器资源可见性
本系列文章记录了企业客户在应用Kubernetes时的一些常见问题 第一篇:Java应用资源限制的迷思 第二篇:利用LXCFS提升容器资源可见性 第三篇:解决服务依赖 这是本系列的第2篇内容,将介绍在 ...
最新文章
- 编译32位扩展在64位环境
- Elasticsearch上手——熟悉基本操作
- web.xml文件位于web项目的目录结构中的_看完这篇,别人的开源项目结构应该能看懂了...
- 全球及中国特斯拉产业销量预测及投资机遇调研报告2021-2027年
- 2016级算法第一次练习赛-E.AlvinZH的儿时回忆——蛙声一片
- NYOJ 622 Vote
- python requests详解_python的requests模块参数详解
- 直播 | KDD 2021论文解读:基于协同对比学习的自监督异质图神经网络
- ASP.NET Core集成Nacos配置中心之适配多格式配置
- oracle数据库延迟执行,如何诊断oracle数据库运行缓慢或hang住的问题
- 论文浅尝 | Knowledge Vault: 全网规模的知识概率融合方法
- HDU-1285-确定比赛名次
- 基于STM32的波形发生器
- php 默认是几进制数,以0x开头的是多少进制?
- yy开播特效软件小猫虚拟换肤自定义背景衣服DIY
- 三顿半、永璞、时萃,谁能成为下一个咖啡品类之王?
- 2021 秋招算法岗人间地狱?人工智能方向年薪 60w 起!
- ABP框架 - 实体
- vue动态生成二维码,扫码登录
- 编程语言:Java与C语言C++的区别是什么?知道该学什么了吧!
热门文章
- Spring OXM-XStream转换器
- Android Studio使用外部jar包
- 复习笔记(二)——C++面向对象设计和使用
- oracle原始数据类型,Oracle基本数据类型存储格式浅析——RAW类型
- 阿里巴巴开源分布式框架Seata TCC模式深入分析
- pcm 采样率转换_44.1KHz够用吗?我们是否需要更高的采样率?
- python3 sys模块
- CSS学习03之基本选择器
- python中的gui界面编程_python应用系列教程——python的GUI界面编程Tkinter全解
- 计算机社团优秀成员申请书,优秀社团的成员申请书