集群安全机制
1、概述
- 访问k8s集群时,需要经过三个步骤,才能完成具体操作
- 第一步 认证
- 身份验证(如日常使用,用户)
- 第二步 鉴权(授权)
- 身份权限(如日常使用,角色)
- 第三步 准入控制
- 行为控制(如日常使用,ACL访问控制列表)
2、进行访问时,过程中需要经过apiserver,apierver做统一协调,如门卫。访问过程中需要证书、token、或者用户名+密码,如果访问pod需要serviceAccount

- 第一步认证 传输安全
- 传输安全:对外不暴露8080端口,仅能内部访问,对外使用6443端口
- 认证
- 客户端身份常用方式
- https证书认证,基于ca证书(推荐,目前此种方式最安全,如:部署二进制安装包生成证书文件)
- http token认证,通过token识别用户(如:使用yum安装,时添加node节点时操作)
- http基本认证,用户名+密码认证(此种方法不安全,不推荐)
- 第二步鉴权(授权)
- 基于RBAC进行鉴权操作
- 基于角色访问控制
- 第三步 准入控制
- 准入控制器列表,如果列表有请求内容则通过,反之拒绝
3、RBAC 基于角色访问控制(Role-based-Access-Control)
定义一个角色A(角色命名)
对角色A定义一组权限(相当于规划做一此权限控制)
角色A对用户A进行角色绑定(用户加入某个角色)

- 角色
- role:特定命名空间
- ClusterRole:所有命令空间访问
- 角色绑定
- roleBinding:角色绑定至主体
- ClusterRoleBingding:集群角色绑定到主体
- 主体
- user:用户
- group:用户组
- serviceAccout:服务账号
示例
- 创建命名空间
- 在新创建的命名空间创建Pod
- 创建角色
- 创建角色绑定用户
- 使用证书识别身份
Loading...
keepalived