k8s系列-04-k8s的认证授权和准入控制

Posted 公号运维家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s系列-04-k8s的认证授权和准入控制相关的知识,希望对你有一定的参考价值。

声明:本文乃“运维家”原创,转载请注明出处,更多内容请关注公众号“运维家”。

k8s系列-04-k8s的认证、授权和准入控制_访问者


主旨

本节主要介绍一下,k8s客户端如何经过认证访问到apiserver,以及k8s如何授权,是怎么判定访问者拥有什么权限等内容。


认证

1、客户端认证

客户端认证也称为TLS双向认证,为什么这么说呢,是因为kubectl在访问apiserver的时候,apiserver也要认证kubectl是否正确,他们都会访问CA来进行验证,如下图:

k8s系列-04-k8s的认证、授权和准入控制_运维_02


2、Bearertoken

Bearertoken的方式,可以理解为apiserver将一个密码通过了非对称加密的方式告诉了kubectl,然后通过该密码进行相互访问,和TLS类似,但是少了CA,如下图:

k8s系列-04-k8s的认证、授权和准入控制_运维_03


3、Serviceaccount

上面客户端证书认证和Bearertoken的两种认证方式,都是外部访问apiserver的时候使用的方式,那么我们这次说的Serviceaccount是内部访问pod和apiserver交互时候采用的一种方式。Serviceaccount包括了,namespace、token、ca,且通过目录挂载的方式给予pod,当pod运行起来的时候,就会读取到这些信息,从而使用该方式和apiserver进行通信。如下图:

k8s系列-04-k8s的认证、授权和准入控制_客户端_04


授权-RBAC

认证我们介绍完了,不过仅仅是认证是不够的,认证只能确定访问者没有问题,那么访问者有什么权限呢?他能访问哪些东西呢?这时候我们就需要授权了。在k8s中的授权模式采用的是RBAC,即:基于角色的访问控制,分为以下三种类型来进行:

k8s系列-04-k8s的认证、授权和准入控制_客户端_05

我们先说用户吧,用户在这里分为普通用户(User)比如我们上面说的kubectl,以及程序内部的用户(serviceaccept)比如pod:


剩余内容请转至VX公众号 “运维家” ,回复 “112” 查看。

以上是关于k8s系列-04-k8s的认证授权和准入控制的主要内容,如果未能解决你的问题,请参考以下文章

kubernetes集群的认证授权准入控制

k8s的安全认证

k8s认证授权

K8S的API Server认证介绍

认证授权与准入控制

k8s apiServer