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

如何通过特定IP(VPN连接)限制持有Kubeconfig的用户访问Amazon EKS集群

如何通过特定IP(VPN连接)限制持有Kubeconfig的用户访问Amazon EKS集群

嘿,这个问题提得太关键了——EKS集群的访问安全可容不得半点马虎!要实现只允许特定IP(比如你的VPN出口IP)的用户拿着指定kubeconfig访问集群,咱们可以从网络层入口控制和身份+IP双重验证两个层面入手,双管齐下才能把权限锁得死死的。

一、先从网络层面掐断非授权访问(最直接的第一道防线)

EKS的控制平面是通过安全组来管控网络访问的,咱先把这道关把好:

  • 登录AWS控制台,找到你的EKS集群详情页,在「配置」→「网络」里找到控制平面安全组(就是那个eks-cluster-sg-xxx开头的安全组)。
  • 编辑这个安全组的入站规则:
    • 找到针对443端口(Kubernetes API Server的端口)的规则,把来源IP改成你的VPN出口IP/IP段(比如 192.168.1.0/24)。
    • 要是原来有允许 0.0.0.0/0 全开放的规则,赶紧删掉!只留你信任的VPN IP段就行。
  • 这么一来,哪怕有人偷到了kubeconfig,不在这个IP段里的话,连EKS的API Server都连不上,彻底没戏。

二、给IAM身份加IP限制(身份+IP双重保险)

你的「lens user」应该是用IAM身份来验证EKS访问的吧?那咱可以在IAM权限策略里再加一层IP限制,确保只有从指定IP发起的请求才被允许:

  1. 找到给「lens user」授权的IAM策略(就是那些包含 eks:DescribeCluster、eks:AccessKubernetesApi 权限的策略)。
  2. 编辑策略,在Statement里添加一个Condition块,限制请求的来源IP:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "eks:DescribeCluster",
            "eks:AccessKubernetesApi"
          ],
          "Resource": "arn:aws:eks:你的区域ID:你的账号ID:cluster/你的集群名称",
          "Condition": {
            "IpAddress": {
              "aws:SourceIp": ["192.168.1.0/24"]
            }
          }
        }
      ]
    }
    
  3. 保存策略后,就算「lens user」的kubeconfig被泄露,只要不在指定IP段里,IAM会直接拒绝身份验证请求,根本进不了集群。

三、进阶玩法:Kubernetes RBAC+准入控制器实现细粒度IP限制

如果需要更细的控制(比如某个Kubernetes角色只能从特定IP操作Pod),可以用Open Policy Agent (OPA) 来做准入控制,编写规则检查客户端IP是否在允许的范围内。不过这个玩法相对复杂,一般前两种方法已经能满足大部分场景的安全需求了。

总结一下:优先用安全组做网络层面的拦截,再配合IAM策略做身份+IP的双重验证,这俩组合起来就足够把集群访问权限锁得严严实实的了!

备注:内容来源于stack exchange,提问作者vivek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 11:49:31