• 访问K8S集群的资源须要过三关:认证、鉴权、准入控制
• 普通用户若要安全访问集群API Server,每每须要证书、Token
或者用户名+密码;Pod访问,须要ServiceAccount
• K8S安全控制框架主要由下面3个阶段进行控制,每个阶段都
支持插件方式,经过API Server配置来启用插件。
1. Authentication(认证)
2. Authorization(受权)
3. Admission Control(准入控制)安全
# 查看ServiceAccount
kubectl get sa框架
NAME SECRETS AGE default 1 5d22h nfs-client-provisioner 1 3h1m
RBAC(Role-Based Access Control,基于角色的访问控制):负责完成受权(Authorization)工做。spa
Adminssion Control其实是一个准入控制器插件列表,发送到API Server的请求都须要通过这个列表中的每一个准入控制器
插件的检查,检查不经过,则拒绝请求。插件
1.11版本以上推荐使用的插件:3d
--enable-admission-plugins= \
NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds, ResourceQuota
RBAC(Role-Based Access Control,基于角色的访问控制),容许经过Kubernetes API动态配置策略。code
• 角色
• Role:受权特定命名空间的访问权限
• ClusterRole:受权全部命名空间的访问权限
• 角色绑定
• RoleBinding:将角色绑定到主体(即subject)
• ClusterRoleBinding:将集群角色绑定到主体
• 主体(subject)
• User:用户
• Group:用户组
• ServiceAccount:服务帐号blog