提起K8s API的访问控制,很多同学应该都会想到RBAC,这是K8s用来做权限控制的方法,但是K8s对API的访问控制却不止于此,今天我们就来简单介绍下K8s的访问控制以及ACK如何利用这套方法提供便捷的访问控制管理
访问控制简要说明
控制流程如上图所示,我们今天关注点在前两步,也就是图中的Authentication
和Authorization
Authentication
做的是身份校验,Authentication
支持的方法包括X509 Client Certs、Password、Plain Tokens、Bootstrap Tokens 和 JWT Tokens,今天我们要实践的就是X509 Client Certs校验方式
API server启动时传入--client-ca-file=SOMEFILE
即可启用证书校验,参数指定的文件中必须包含至少一个CA证书用于校验传入的客户端证书。
验证通过后,证书中的common name
(CN)字段会作为请求的username,organization
(O)字段作为请求的group
Authorization
做的是授权鉴定,一个请求通过Authentication
后,会带着一个user和group,Authorization
做的就是判断请求的方法(verb)和对象(object)是否在user和group的权限范