重磅揭秘:K8S集群安全漏洞激增,这些防护机制你必须掌握!

文摘   2025-01-18 18:08   江苏  

概述

访问K8S集群,需要经过三个步骤完成具体操作

  1. 认证

  2. 鉴权(授权)

  3. 准入控制

进行访问时,过程中需要经过 ApiServer,做统一协调,比如门卫,访问过程中需要证书、token、或者用户名+密码,如果访问pod需要 ServiceAccount

认证

传输安全:对外不暴露8080端口,只能内部访问,对外使用端口 6443
认证:客户端身份认证常用方法,

  • https:证书认证,基于CA证书;

  • http: token 认证,通过 token 识别用户(Node加入 master),基本认证(用户名+密码)

鉴权(授权)

基于RBAC进行鉴权操作
基于角色访问控制

准入控制

是一个准入控制器列表,如果列表中有就通过,没有不让通过

RBAC

基于角色的访问控制

角色

  • role:特定命名空间访问权限

  • clusterRole:所有命名空间访问权限

角色绑定

  • roleBinding: 角色绑定到主体

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

主体

  • user:用户

  • group: 用户组

  • serviceAccount: 服务帐号

RBAC 实现

rbac-role.yaml

rbac-bolebinding.yaml

# 创建命名空间
[root@k8smaster ~]# kubectl create ns roledemo
# 创建pod
[root@k8smaster ~]# kubectl run nginx --image=nginx -n roledemo

[root@k8smaster ~]# vi rbac-role.yaml
# 创建 rbac-role.yaml,内容见上图
[root@k8smaster ~]# kubectl apply -f rbac-role.yaml
# 查看角色
[root@k8smaster ~]# kubectl get role -n roledemo
# 创建角色绑定 rbac-rolebinding.yaml
[root@k8smaster ~]# vi rbac-rolebinding.yaml
# 创建 rbac-rolebinding.yaml
[root@k8smaster ~]# kubectl apply -f rbac-rolebinding.yaml
# 查看角色
[root@k8smaster ~]# kubectl get role,rolebinding -n roledemo
使用证书识别身份


rabc-user.sh

cat > mary-csr.json <<EOF
{
"CN": "mary",
"hosts": [],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "BeiJing",
"ST": "BeiJing"
}
]
}
EOF


cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes mary-csr.json | cfssljson -bare mary

kubectl config set-cluster kubernetes \
--certificate-authority=ca.pem \
--embed-certs=true \
--server=https://192.168.31.63:6443 \
--kubeconfig=mary-kubeconfig

kubectl config set-credentials mary \
--client-key=mary-key.pem \
--client-certificate=mary.pem \
--embed-certs=true \
--kubeconfig=mary-kubeconfig

kubectl config set-context default \
--cluster=kubernetes \
--user=mary \
--kubeconfig=mary-kubeconfig

kubectl config use-context default --kubeconfig=mary-kubeconfig


[root@k8smaster ~]# mkdir mary
[root@k8smaster ~]# cd mary
# 详细内容见上文
[root@k8smaster mary]# vi rabc-user.sh
# 将证书复制到 mary 目录中,具体文件(私聊)
[root@k8smaster mary]# cp ./k8s/ca* ./
[root@k8smaster mary]# ls
ca-config.json ca.scr ca-csr.json ca-key.pem ca.pem rabc-user.sh
# 会多出一些 myar* 证书
[root@k8smaster mary]# bash rabc-user.sh
# 查看 mary-kubeconfig
[root@k8smaster mary]# bash mary-kubeconfig
# 查看 pod
[root@k8smaster mary]# kubectl get pods -n roledemo

链接:https://www.cnblogs.com/vipsoft/p/16931359.html

                                                              (版权归原作者所有,侵删)

文末福利

即将步入2025年,不少小伙伴在考虑来年的工作方向。

仅目前来说,传统运维冲击年薪30W+的转型方向就是SRE&DevOps岗位。



为了帮助大家早日摆脱繁琐的基层运维工作,给大家整理了一套【2024最新运维资料高级运维工程师必备技能资料包(文末一键领取),内容有多详实丰富看下图!
共有 20 个模块

1.38张最全工程师技能图谱

2.面试大礼包

3.Linux书籍

4.go书籍




······





6.自动化运维工具


18.消息队列合集




 以上所有资料获取请扫码

识别上方二维码

备注:2024最新运维资料

100%免费领取

(是扫码领取,不是在公众号后台回复,别看错了哦)


运维派
领先的IT运维社区,和运维同学们一起交流成长!
 最新文章