专栏首页Liusy01k8s之API Server认证

k8s之API Server认证

集群安全性

在生产环境中,必须保障集群用户的角色以及权限问题,不能给所有用户都赋予管理员权限。

(1)集群的安全性必须考虑如下几个目标

(1)保证容器与其所在宿主机的隔离

(2)限制容器给基础设置或其他容器带来的干扰

(3)最小权限原则:合理限制所有组件的权限,确保组件只执行它被授权的行为,通过限制单个组件的能力来限制它的权限范围

(4)明确组件间边界的划分

(5)划分普通用户和管理员的角色

(6)在必要时允许将管理员权限赋给普通用户

(7)允许拥有Secret(Keys、Certs、Passwords)数据的应用在集群中运行

API Server认证管理

k8s集群提供了三种级别的客户端身份认证方式:

(1)HTTPS证书认证

基于CA根证书签名的的双向数字认证方式,CA机构是第三方证书权威机构,认证步骤如下图:

1、服务器端向CA机构申请证书,CA机构下发根证书、服务端证书、私钥给申请者

2、客户端向CA机构申请证书,CA机构下发根证书、客户端证书、私钥给申请者

3、客户端向服务端发起请求,服务端下发服务端证书给客户端,客户端通过私钥进行解密,并利用服务端证书中的公钥认证证书信息比较证书中的信息,如果一致,则客户端认可服务端身份

4、客户端向服务端发送证书,服务端使用私钥进行解密,获得客户端证书公钥,并用公钥认证证书信息,确认客户端是否合法

5、两端协商好加密方案后,客户端产生一个随机密钥,通过协商好的方案加密该密钥,并发送该密钥给服务端,服务端收到密钥后,双方使用这个随机密钥进行信息传输。

(2)HTTP Token认证

通过一个Token来识别合法用户,就像HTTP请求的Cookie一样,只不过Cookie是浏览器端,Token是服务端。

用一个很长的特殊编码方式并且难以被模仿的字符串--Token,Token对应用户信息,存储在API Server中能访问的一个文件夹中,客户端只需在请求时的HTTP Header中放入Token,API Server就可以识别用户信息。

(3)HTTP Base认证

通过用户名加密码的方式认证,把(用户名+冒号+密码)用Base64编码后放到HTTP Request中的Header Authorization域中发给服务端,服务端收到后进行解密,获取用户名和密码,然后进行用户授权验证

API Server授权管理

当API Server被调用时,需要先进行用户认证,然后通过授权策略执行用户授权。

API Server支持以下几种授权策略(通过API Server启动参数--authorization-mode设置)

(1)AlwaysDeny:拒绝所有请求

(2)AlwaysAllow:允许接收所有请求

(3)ABAC(Attributed-Based Access Control):基于属性的访问控制,表示使用用户配置的授权规则对用户请求进行匹配和控制

(4)Webhook:通过调用外部REST服务对用户进行授权

(5)RBAC:Role-Based Access Control,基于角色的访问控制

(6)Node:一种专用模式,用于对kubelet发起的请求进行访问控制

API Server在接收到请求后,会根据请求中的数据生成一个访问策略对象,如果请求中不带某些属性,则会为这些属性根据类型设置默认值,然后将这个访问策略对象和授权策略文件中的所有访问策略对象逐条匹配,如果至少一个匹配上,则请求被鉴权通过,否则终止调用流程。

end

本文分享自微信公众号 - Liusy01(Liusy_01),作者:Liusy01

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-11-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 拔刀吧!BIO,NIO

    也许你或多或少的会在平时接触到IO,也许你平时最经常接触到的就是文件IO流读写,也可能听过这两种IO的区别,所以今儿咱来聊一下这个东西。

    Liusy
  • k8s重器之Service

    Service是k8s的核心,通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并将请求进行负载分发到各个容器应用上。

    Liusy
  • Nginx+KeepAlived实现高可用

    加入有两个服务器有相同的服务,平时只有一台提供服务,另一台作为热备。当提供服务的机子挂了之后,热备机能马上接管服务,这就是高可用。

    Liusy
  • 网络安全基础——浅谈HTTPS协议

    HTTPS,安全的HTTP,也被称为HTTP over TLS,TLS的前身是SSL。HTTPS的安全基础是SSL。SSL协议位于TCP/IP协议与各种应用层协...

    行云博客
  • 关于前端的思考与感悟

    当我想要认真写一篇文章向大家分享我对前端的认识与感悟的时候,突然就深刻的体会到了这句话确实太有道理了。

    用户6901603
  • ​2019年最新华为、BAT、美团、头条、滴滴面试题目及答案汇总

    【导语】最近 GitHub 上一个库火了,总结了 阿里、腾讯、百度、美团、头条等国内主流大厂的技术面试题目,目前 Star 2000+,还在持续更新中,预计会火...

    AI科技大本营
  • 带有半盗贼反馈的组合匪徒的有效纯探索(CS)

    具有半强盗反馈的组合强盗会泛化多臂强盗,在这种情况下,特工选择几组臂并观察包含在选定组中的每条臂的嘈杂奖励。动作集满足给定的结构,例如形成拟阵的基部或图中的路径...

    用户8078865
  • Android ListView与RecycleView的对比使用解析

    ListView,就如其名,是用来显示列表的一种View,而RecycleView,是其的加强版,今天带来的是这两个几乎具有相同的功能的对比使用

    砸漏
  • Active Record 迁移

    create_table 是最基础的、最常用的方法,通常由生成器生成,默认情况下,这个方法会自动创建 id 字段, 可以使用 id: false 来禁用主键,可...

    用户1515472
  • 【技术】谷歌发布MobileNetV2:新一代移动端计算机视觉网络

    AiTechYun

扫码关注云+社区

领取腾讯云代金券