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

  1. {"user":"alice"}:
    用户alice 可以做任何事!
  2. {"user":"kubelet", "resource": "pods", "readonly": true}:
    kubelet可以GET任何pod的信息。
  3. {"user":"kubelet", "resource": "events"}:
    kubelet可以对events做任何读写操作。
  4. {"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相关推荐

  1. Controlling Access to the Kubernetes API

    更多关于kubernetes的深入文章,请看我csdn或者oschina的博客主页. API Server Ports and IPs By default the Kubernetes API se ...

  2. iam身份验证以及访问控制_如何将受限访问IAM用户添加到EKS群集

    iam身份验证以及访问控制 介绍 (Introduction) Elastic Kubernetes Service (EKS) is the fully managed Kubernetes ser ...

  3. 再战 k8s(十八):RKE

    RKE 简介 Rancher Kubernetes Engine,简称 RKE,是一个经过 CNCF 认证的 Kubernetes 安装程序.RKE 支持多种操作系统,包括 MacOS.Linux 和 ...

  4. kubernetes访问控制——Authentication认证、Authorization授权、服务账户的自动化

    文章目录 1.kubernetes API 访问控制 2. Authentication(认证) 1.创建serviceaccount 2.添加secrets到serviceaccount 3.把se ...

  5. Kubernetes 网络排错指南

    本文介绍各种常见的网络问题以及排错方法,包括 Pod 访问异常.Service 访问异常以及网络安全策略异常等. 说到 Kubernetes 的网络,其实无非就是以下三种情况之一 Pod 访问容器外部 ...

  6. kubernetes学习笔记之十三:基于calico的网络策略入门

    一..安装calico [root@k8s-master01 ~]# kubectl apply -f https://docs.projectcalico.org/v3.3/getting-star ...

  7. 在Kubernetes v1.8中使用RBAC

    Kubernetes 1.8一个重要里程碑是推出了基于角色的访问控制(RBAC)授权,在这个版本中被提升为GA.RBAC是一种控制访问Kubernetes API的机制,因为在1.6中推出beta版, ...

  8. kubernetes Helm

    Helm产生原因 利用Kubernetes部署一个应用,需要Kubernetes原生资源文件如deployment.replicationcontroller.service或pod 等.而对于一个复 ...

  9. Kubernetes之路 2 - 利用LXCFS提升容器资源可见性

    本系列文章记录了企业客户在应用Kubernetes时的一些常见问题 第一篇:Java应用资源限制的迷思 第二篇:利用LXCFS提升容器资源可见性 第三篇:解决服务依赖 这是本系列的第2篇内容,将介绍在 ...

最新文章

  1. 编译32位扩展在64位环境
  2. Elasticsearch上手——熟悉基本操作
  3. web.xml文件位于web项目的目录结构中的_看完这篇,别人的开源项目结构应该能看懂了...
  4. 全球及中国特斯拉产业销量预测及投资机遇调研报告2021-2027年
  5. 2016级算法第一次练习赛-E.AlvinZH的儿时回忆——蛙声一片
  6. NYOJ 622 Vote
  7. python requests详解_python的requests模块参数详解
  8. 直播 | KDD 2021论文解读:基于协同对比学习的自监督异质图神经网络
  9. ASP.NET Core集成Nacos配置中心之适配多格式配置
  10. oracle数据库延迟执行,如何诊断oracle数据库运行缓慢或hang住的问题
  11. 论文浅尝 | Knowledge Vault: 全网规模的知识概率融合方法
  12. HDU-1285-确定比赛名次
  13. 基于STM32的波形发生器
  14. php 默认是几进制数,以0x开头的是多少进制?
  15. yy开播特效软件小猫虚拟换肤自定义背景衣服DIY
  16. 三顿半、永璞、时萃,谁能成为下一个咖啡品类之王?
  17. 2021 秋招算法岗人间地狱?人工智能方向年薪 60w 起!
  18. ABP框架 - 实体
  19. vue动态生成二维码,扫码登录
  20. 编程语言:Java与C语言C++的区别是什么?知道该学什么了吧!

热门文章

  1. Spring OXM-XStream转换器
  2. Android Studio使用外部jar包
  3. 复习笔记(二)——C++面向对象设计和使用
  4. oracle原始数据类型,Oracle基本数据类型存储格式浅析——RAW类型
  5. 阿里巴巴开源分布式框架Seata TCC模式深入分析
  6. pcm 采样率转换_44.1KHz够用吗?我们是否需要更高的采样率?
  7. python3 sys模块
  8. CSS学习03之基本选择器
  9. python中的gui界面编程_python应用系列教程——python的GUI界面编程Tkinter全解
  10. 计算机社团优秀成员申请书,优秀社团的成员申请书