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

如何暴露AWS EKS中仅可通过API Gateway访问的VPC内服务

VPC内仅通过API Gateway访问EKS私有服务配置方案

整个配置全程不会给EKS服务分配公网暴露面,所有访问流量唯一入口为API Gateway,流量全程走AWS私有网络,不会经过公网链路,按以下步骤操作即可:

1. EKS侧服务私有暴露配置

  • 给EKS中需要暴露的目标工作负载创建LoadBalancer类型的Service,添加注解service.beta.kubernetes.io/aws-load-balancer-internal: "true",这个配置会让AWS自动分配一个内网NLB,仅在当前VPC内可路由,不会分配公网IP
  • 给这个内网NLB绑定独立的安全组,入站规则仅放通后续VPC Link关联安全组的对应服务端口流量,拒绝所有其他来源的访问请求,从网络层阻断非API Gateway来源的直连流量
  • 可选:给目标Pod配置K8s NetworkPolicy,限制Pod仅接收来自NLB所在子网段的流量,做双层访问控制
  • 配置完成后先做连通性校验:找一台同VPC内无公网IP的EC2实例,curl内网NLB的地址,确认服务响应正常;再从公网环境尝试连通NLB地址,确认无法连通,避免服务意外暴露。

2. 创建私有VPC Link打通API Gateway与VPC链路

  • 进入API Gateway控制台,选择对应区域,创建HTTP API类型的VPC Link(REST类型的VPC Link配置逻辑一致,但HTTP类型成本更低、性能更好,优先选择)
  • VPC选择EKS集群所在的VPC,子网选择至少2个不同可用区的私有子网(不要选绑定了互联网网关的公有子网),安全组选择提前创建的、允许访问EKS内网NLB端口的安全组
  • 等待VPC Link状态变为Available即可,这个过程一般3-5分钟,创建完成后API Gateway会通过自动创建的弹性网卡接入VPC,所有访问流量走AWS内网,不会经过公网。

3. API Gateway路由与访问控制配置

  • 创建HTTP API实例,端点类型选Regional即可,不要选边缘优化类型
  • 进入API的资源策略配置页,添加策略拒绝所有公网IP段的访问,仅放通VPC内网段、或者你指定的VPC端点来源的访问,确保API本身也不会对公网暴露
  • 按业务需求新增路由,配置需要暴露的请求方法、路径匹配规则
  • 路由的后端集成类型选择VPC Link,选中之前创建的VPC Link资源,后端目标选择EKS侧内网NLB对应的监听器,配置路径转发规则(一般选原样转发即可,按需配置路径重写规则)
  • 按需配置API鉴权规则:如果服务本身没有鉴权逻辑,可以搭配IAM鉴权、自定义Lambda授权器做访问控制,不要开启无限制的公开访问。

4. 连通性验证

  • 将API配置部署到对应阶段,拿到API的调用地址
  • 回到VPC内的私有EC2实例,调用API地址,确认能正常返回EKS服务的响应
  • 切换到公网环境(比如本地办公网络、非该VPC的公网机器)分别调用API地址、直连EKS内网NLB地址,确认两类请求都被拒绝,符合安全要求。

常见踩坑提醒

  • 不要漏加内网NLB的注解,缺了这个注解AWS会默认创建公网NLB,直接把服务暴露到公网
  • VPC Link关联子网的时候一定不要选公有子网,否则会带来不必要的公网暴露风险
  • 安全组遵循最小权限原则:NLB安全组入站仅放通VPC Link安全组的访问,VPC Link安全组出站仅允许到NLB服务端口的流量,不要全开0.0.0.0/0的规则
  • 如果需要VPC内通过自定义内网域名访问API,可以在Route53私网托管区给API调用域名配置别名记录,不需要修改本地hosts。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 06:30:54