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在接收到请求后,会根据请求中的数据生成一个访问策略对象,如果请求中不带某些属性,则会为这些属性根据类型设置默认值,然后将这个访问策略对象和授权策略文件中的所有访问策略对象逐条匹配,如果至少一个匹配上,则请求被鉴权通过,否则终止调用流程。
===============================
我是Liusy,一个喜欢健身的程序员。
欢迎关注微信公众号【上古伪神】,一起交流Java技术及健身,获取更多干货,领取Java进阶干货,领取最新大厂面试资料,一起成为Java大神。
来都来了,关注一波再溜呗。
k8s之API Server认证的更多相关文章
- 033.Kubernetes集群安全-API Server认证及授权
一 Kubernetes集群安全 1.1 安全机制 Kubernetes通过一系列机制来实现集群的安全控制,其中包括API Server的认证授权.准入控制机制及保护敏感信息的Secret机制等.集群 ...
- K8S Api Server认证
目录 认证类型 基于CA证书的双向认证 apiserver端配置 生成客户端私钥和证书 master核心组件与apiserver的认证方式 HTTP Token认证 HTTP Basic认证 kube ...
- k8s使用自定义证书将客户端认证接入到API Server
自定义证书使用kubectl认证接入API Serverkubeconfig是API Server的客户端连入API Server时使用的认证格式的客户端配置文件.使用kubectl config v ...
- k8s 组件介绍-API Server
API Server简介 k8s API Server提供了k8s各类资源对象(pod,RC,Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中心. kub ...
- 拿nodejs快速搭建简单Oauth认证和restful API server攻略
拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...
- k8s中的api server的ca证书,可以和front proxy ca证书一样么?
答案是: 绝对不可以! 因为请求先验证的是 --requestheader-client-ca-file CA 然后才是--client-ca-file. . 那获取的用户名就会通不过了. 所以会影响 ...
- k8s api server ha 连接配置问题
常见的lb 负载有硬件的f5 big-ip ,同时对于互联网公司大家常用的是nginx haproxy 了解k8s 集群高可用的都知道 api server 是无状态的(etcd 解决了),但是 ...
- 资深专家深度剖析Kubernetes API Server第1章(共3章)
欢迎来到深入学习Kubernetes API Server的系列文章,在本系列文章中我们将深入的探究Kubernetes API Server的相关实现.如果你对Kubernetes的内部实现机制比较 ...
- kubernetes API Server安全
用户访问API Server(以下简称Server),K8S的安全检查步骤:认证和授权. 认证解决用户是谁的问题,就是验证用户名密码;授权解决用户能做什么的问题,就是检查该用户是否拥有权限访问请求的资 ...
随机推荐
- LeetCode初级算法之数组:217 存在重复元素
存在重复元素 题目地址:https://leetcode-cn.com/problems/contains-duplicate/ 给定一个整数数组,判断是否存在重复元素.如果任意一值在数组中出现至少两 ...
- Redis Sentinel-深入浅出原理和实战
本篇博客会简单的介绍Redis的Sentinel相关的原理,同时也会在最后的文章给出硬核的实战教程,让你在了解原理之后,能够实际上手的体验整个过程. 之前的文章聊到了Redis的主从复制,聊到了其相关 ...
- 团队作业3_需求改进&系统设计
一.需求&原型改进 1.需求改进: (1)发现问题:通过发布问卷调查及收集整理的形式发现用户的新需求: (2)修改需求:考虑新增提醒用户未完成事件的功能. 附:用户调查问卷(如下) 调研途 ...
- 题解-洛谷P5217 贫穷
洛谷P5217 贫穷 给定长度为 \(n\) 的初始文本 \(s\),有 \(m\) 个如下操作: \(\texttt{I x c}\),在第 \(x\) 个字母后面插入一个 \(c\). \(\te ...
- vue2实现路由懒加载
一.什么是懒加载 顾名思义,懒加载就是随用随加载,什么时候需要就什么时候加载. 二.为什么需要懒加载 在单页应用中,如果没有使用懒加载,webpack打包后的文件会很大,这时进入首页时的加载时间会很长 ...
- 移动端H5微信分享
移动端H5微信分享功能,可以使项目更好地传播. 微信官方教程文档: 微信JS-SDK说明文档 步骤一:绑定域名 先登录微信公众平台进入"公众号设置"的"功能设置&quo ...
- EasyX 简易绘图工具接口整理
EasyX Library for C++ (Ver:20190415(beta)) http://www.easyx.cn EasyX.h 1 #pragma once 2 3 #ifndef ...
- STL—— 容器(vector)的内存分配,声明时的普通构造&带参构造
vector 的几种带参构造 & 初始化与内存分配: 1. 普通的带参构造: vector 的相关对象可以在声明时通过 vector 的带参构造函数进行内存分配,如下: 1 #include ...
- Hadoop框架:Yarn基本结构和运行原理
本文源码:GitHub·点这里 || GitEE·点这里 一.Yarn基本结构 Hadoop三大核心组件:分布式文件系统HDFS.分布式计算框架MapReduce,分布式集群资源调度框架Yarn.Ya ...
- 如何自定义Kubernetes资源
目前最流行的微服务架构非Springboot+Kubernetes+Istio莫属, 然而随着越来越多的微服务被拆分出来, 不但Deploy过程boilerplate的配置越来越多, 且繁琐易错, 维 ...