You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EKS集群Kubernetes Dashboard免令牌VPN全读访问配置咨询

AWS EKS Kubernetes Dashboard 无令牌只读访问(仅限VPN)

步骤1:部署Kubernetes Dashboard(若未部署)

先部署官方推荐的Dashboard版本:

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

步骤2:配置匿名用户只读RBAC权限

创建集群角色绑定,将K8s内置的view只读角色绑定到匿名用户组,确保无令牌访问时拥有全集群只读权限:

# dashboard-anonymous-view.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: dashboard-anonymous-view
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: view
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: system:anonymous
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: system:unauthenticated

应用配置:

kubectl apply -f dashboard-anonymous-view.yaml

步骤3:修改Dashboard配置,启用无令牌登录

编辑Dashboard的Deployment,添加参数跳过登录验证并禁用设置页面授权:

kubectl edit deployment kubernetes-dashboard -n kubernetes-dashboard

找到containers.args字段,更新为:

args:
  - --auto-generate-certificates
  - --namespace=kubernetes-dashboard
  - --enable-skip-login
  - --disable-settings-authorizer

保存退出后,Deployment会自动重启生效。

步骤4:限制访问来源为VPN CIDR

方式1:通过EKS节点安全组限制(NodePort场景)

  1. 查看Dashboard的NodePort端口:
kubectl get svc kubernetes-dashboard -n kubernetes-dashboard
  1. 找到EKS集群的节点安全组,添加入站规则:
    • 协议:TCP
    • 端口范围:上述NodePort端口
    • 来源:你的VPN网段(例如10.0.0.0/16)

方式2:通过Ingress限制(更优雅,推荐)

如果已部署Nginx Ingress Controller,创建Ingress资源并配置IP白名单:

# dashboard-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: kubernetes-dashboard-ingress
  namespace: kubernetes-dashboard
  annotations:
    nginx.ingress.kubernetes.io/whitelist-source-range: "10.0.0.0/16" # 替换为你的VPN CIDR
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
  tls:
  - hosts:
    - dashboard.your-domain.com # 替换为你的域名
    secretName: dashboard-tls-secret # 提前创建SSL证书Secret
  rules:
  - host: dashboard.your-domain.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: kubernetes-dashboard
            port:
              number: 443

应用配置:

kubectl apply -f dashboard-ingress.yaml

步骤5:验证配置

  1. 连接VPN后,访问Dashboard:
    • NodePort方式:https://<EKS节点IP>:<NodePort>,点击「Skip」直接进入
    • Ingress方式:https://dashboard.your-domain.com,点击「Skip」直接进入
  2. 尝试查看各类资源(Pods、Deployments等),确认无法执行创建/修改/删除操作
  3. 断开VPN后尝试访问,验证无法连接

内容的提问来源于stack exchange,提问作者RajuK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 08:15:43