Kubernetes 安全概念详解

Kubernetes 安全框架 API 认证三关

• 访问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)工作。

准入控制

Adminssion Control实际上是一个准入控制器插件列表,发送到API Server的请求都需要经过这个列表中的每个准入控制器
插件的检查,检查不通过,则拒绝请求。

1.11版本以上推荐使用的插件:

--enable-admission-plugins= \
NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds, ResourceQuota

RBAC核心概念

RBAC(Role-Based Access Control,基于角色的访问控制),允许通过Kubernetes API动态配置策略。

• 角色
  • Role:授权特定命名空间的访问权限
  • ClusterRole:授权所有命名空间的访问权限
• 角色绑定
  • RoleBinding:将角色绑定到主体(即subject)
  • ClusterRoleBinding:将集群角色绑定到主体
• 主体(subject)
  • User:用户
  • Group:用户组
  • ServiceAccount:服务账号

 

posted @ 2019-08-28 15:32  kevin.Xiang  阅读(590)  评论(0编辑  收藏  举报