处理保障 Kubernetes Dashboard 访问安全这类问题时,先确认目标场景,再按步骤核对配置或玩法细节。
在本次挑战中,你将通过为 Kubernetes Dashboard 创建一个只读服务账户来增强 Kubernetes 集群的安全性,以此展示你对基于角色的访问控制(RBAC)的理解。你需要创建一个新的服务账户、一个具有只读权限的集群角色(ClusterRole),并将该集群角色绑定到服务账户上。最后,你将为该服务账户生成一个用于登录 Dashboard 的令牌(Token)。
作为一名初级 DevOps 工程师,你将通过为 Kubernetes Dashboard 创建一个只读服务账户来增强 Kubernetes 集群的安全性,从而证明你对基于角色的访问控制(RBAC)的掌握。
提供 YAML 文件内容如下:
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: read-only-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: read-only-dashboard-role
rules:
- apiGroups: [""]
resources: ["pods", "services", "nodes", "namespaces", "deployments"]
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: read-only-dashboard-access
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: read-only-dashboard-role
subjects:
- kind: ServiceAccount
name: read-only-user
namespace: kubernetes-dashboard
服务账户令牌输出示例:
eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9...
登录后的 Dashboard 视图示例:
总而言之,本次挑战要求你通过为 Kubernetes Dashboard 创建一个只读服务账户来增强 Kubernetes 集群的安全性。你创建了一个新的服务账户、一个具有只读权限的集群角色,并将该角色绑定到了服务账户上。最后,你生成了用于 Dashboard 登录的令牌。