K8S Dashboard未授权访问

  1. K8S环境搭建
  2. K8S DashBoard配置

K8S环境搭建

参考:https://mp.weixin.qq.com/s/-fOfP9r61JRiZnmyVnFEQg

K8S DashBoard配置

从 1.10.1 版本起,Dashboard默认禁用了“跳过”按钮。如果需要添加跳过,则需要添加–enable-skip-login命令。

1
2
3
4
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

#这个命令是生成一个API,进而控制整个集群,不过这个命令只能本地访问
kubectl proxy

访问 localhost:8001

访问dashboard地址:

1
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/.

这里需要凭证,token或者config文件

创建account.yaml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Creating a Service Account
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard

---
# Creating a ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard

使用文件:

1
kubectl apply -f account.yaml

创建admin-user用户:

1
kubectl create -f account.yaml

生成token

1
kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"

这里可能报错非安全登录,运行以下命令:

1
kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard --address 0.0.0.0 9090:443

输入token后进入后台:

点击这里就可以直接进入pod执行命令了:

进入后台创建pod挂载到宿主机上,然后chroot获取宿主机权限


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 sher10cksec@foxmail.com

文章标题:K8S Dashboard未授权访问

本文作者:sher10ck

发布时间:2023-02-13, 19:47:04

最后更新:2023-02-15, 16:08:13

原始链接:http://sherlocz.github.io/2023/02/13/K8S-Dashboard未授权访问/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录