k8s-集群安全机制

1、概述

(1)访问k8s集群时候,需要经过三个步骤完成具体操作

  • 认证
  • 鉴权(授权)
  • 准入控制

(2)进行访问时候,过程中都需要经过apiserver,
apiserver做统一协调,比如门卫。

访问过程中需要证书、token、或者用户名+密码

如果访问pod需要serviceAccount

第一步 认证 传输安全

传输安全:对外不暴露8080端口,只能内部访问,对外使用端口6443

认证

客户端身份认证常用方式:
  • HTTPS证书认证,基于ca证书
  • http token认证,通过token识别用户
  • http基本认证,用户名+密码认证
第二步 鉴权 授权
  • 基于RBAC进行鉴权操作
  • 基于角色访问控制
第三步 准入控制

就是准入控制器的列表,如果列表有请求内容通过,没有拒绝

2、鉴权-RBAC

基于角色的访问控制

角色

  • role:特定的命名空间访问权限
  • ClusterRole:所有命名空间访问权限

角色绑定

  • roleBinding:角色绑定到主体
  • ClusterRoleBinding:集群角色绑定到主体

主体

  • user:用户
  • group:用户组
  • serviceAccount:服务账号

3、RBAC实现鉴权

//1.创建命名空间
kubectl get namespace(ns)

kubectl create ns roledemo


//2.在新创建的命名空间创建pod
kubectl run nginx --image=nginx -n roledemo

kubectl get pods -n roledemo


//3.创建角色
//rbac-role.yaml
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: ctnrs
  name: pod-reader
rules:
- apiGroups: [""] # "" indicates the core API group
  resources: ["pods"]
  verbs: ["get", "watch", "list"]
//对pods有get、watch、list权限


//创建
kubectl apply -f rbac-role.yaml

//查看创建成功的角色
kubectl get role -n roledemo


//4.创建角色绑定
//rbac-rolebinding.yaml
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: read-pods
  namespace: roledemo
subjects:
- kind: User
  name: lucy # Name is case sensitive
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role #this must be Role or ClusterRole
  name: pod-reader # this must match the name of the Role or ClusterRole you wish to bind to
  apiGroup: rbac.authorization.k8s.io


//创建
kubectl apply -f rbac-rolebinding.yaml

//查看
kubectl get role,rolebinding -n roledemo


//5.使用证书识别身份

mkdir mary
cd mary

//将脚本文件放在mary目录下边

//将root目录下的 ca 开头的文件赋值到当前mary目录下
cp /root/TLS/k8s/ca* ./

//执行脚本文件 rabc-user.sh
bash rabc-user.sh

//查看
cat mary-kubeconfig

kubectl get pods -n roledemo

#二进制搭建的集群中进行测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值