主要使用 RBAC授权检查机制
认证: token ssl(双向认证\加密会话)
授权检查
准入控制
API Server 对用户权限的判断需要以下:
user: username uid
group:
extra:
kubectl proxy
HTTP request verb
get post put delte
API request verb
get list create update path watch(- w) proxy redirect deletecollection
Resource:
Subresource
namespace
Api group
serviceaccount 创建
kubectl create serviceaccount default-ns-admin -n default
kubectl create rolebinding default-ns-admin --clusterrole=admin --serviceaccount=default:default-ns-admin
## 获取serviceaccount的 token 需要用base64解密
kubectl get secrets default-ns-admin-token-2tm4n -o jsonpath={.data.token}|base64 -d
用户ssl 认证相关
https://github.com/huruizhi/Knowledge-warehouse/blob/master/linux总结/CA证书与https讲解.md
https://github.com/gjmzj/kubeasz/blob/master/docs/setup/01-CA_and_prerequisite.md
kubeconfig 配置kubectl 连入apiServer的配置
# kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: REDACTED
server: https://192.168.0.200:8443
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: admin
name: kubernetes
current-context: kubernetes
kind: Config
preferences: {}
users:
- name: admin
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
一个客户端可以配置连接多个集群
context用于定义账号与集群的关系,current-context定义当前访问的集群。
RBAC(Role-Based Access Control)
基于角色的访问控制
role 与 rolebinding在名称空间内定义及在当前名称空间内生效。
clusterrole 与clusterrolebinding 在集群中定义且在 整个集群内生效
注意:也可以建立clusterrole 使用 rolebing 进行绑定。
clusterrole 与clusterrolebinding
user group serviceaccount
role clusterrole:
kubectl get secrets default-ns-admin-token-2tm4n -o jsonpath={.data.token}|base64 -d
获取token使用 kubeconfig 生成 kubeconfig 文件 使用参数 --kubeconfig 指定文件
原文:https://www.cnblogs.com/pythonPath/p/11267386.html