跨对等VPC访问私有子网资源:EKS连接服务及NAT/VPC端点配置
解决方案步骤
一、先确认VPC对等连接的基础配置
既然已经建立了VPC A和VPC B的对等连接,先把核心配置补全:
- 路由表配置:
- VPC A中EKS所在公有子网、私有子网的路由表,添加路由条目:目标为VPC B的所有CIDR(含私有子网范围),下一跳为对等连接ID。
- VPC B中Aurora、OpenSearch所在私有子网的路由表,添加路由条目:目标为VPC A的主CIDR+辅助CIDR范围,下一跳为对等连接ID。
- 安全组配置:
- VPC B内Aurora的安全组,放行VPC A全段IP访问对应数据库端口(如3306/5436);OpenSearch的安全组放行VPC A全段IP访问443/9200端口。
- VPC A内EKS节点的安全组,放行出站到VPC B对应服务端口的流量。
二、EKS Pod与VPC B内服务的通信实现
1. Aurora 和 OpenSearch(私有子网内的VPC服务)
直接基于VPC对等连接即可实现通信:
- 确认EKS使用的Amazon VPC CNI插件已正确识别辅助CIDR(默认会自动处理),Pod的IP会落在辅助CIDR范围内,路由表已包含到VPC B的条目。
- Pod直接使用Aurora的私有端点、OpenSearch的VPC端点地址访问即可,只要路由和安全组配置到位,流量会走VPC对等的内网通道。
2. S3存储桶(关联VPC B的存储桶)
有两种内网访问方式:
- 方式一:VPC A内创建S3网关端点
在VPC A的路由表中添加S3前缀(pl-xxxx)的路由,下一跳指向S3网关端点;同时配置S3桶策略,允许VPC A的主CIDR+辅助CIDR范围的IP访问,Pod访问S3时会直接走内网通道,无需公网。 - 方式二:借助VPC B的S3网关端点
如果VPC B已配置S3网关端点,在VPC A的路由表中添加S3前缀的路由,下一跳指向对等连接ID;同时S3桶策略允许VPC A的IP段访问,流量会通过对等连接转到VPC B的S3网关端点。
三、通过NAT网关/VPC端点访问VPC B私有子网服务
1. NAT网关方式(不推荐,仅作备选)
- 在VPC B的公有子网创建NAT网关,将VPC B私有子网的默认路由指向该NAT网关。
- 在VPC A的路由表中添加条目:目标为VPC B私有子网CIDR,下一跳为NAT网关的弹性IP。
- 配置VPC B私有子网的安全组,允许NAT网关的IP访问对应服务端口。
这种方式流量会多一层转发,效率低于VPC对等连接,仅在特殊场景下使用。
2. VPC接口端点方式(高效内网访问)
针对Aurora和OpenSearch,在VPC A创建接口类型VPC端点:
- 选择对应服务(如
rds.amazonaws.com、es.amazonaws.com),关联到VPC A的EKS所在子网。 - 配置端点的安全组,允许VPC A的主CIDR+辅助CIDR范围的IP访问;同时VPC B内服务的安全组,允许该端点的IP访问对应端口。
- 开启端点的私有DNS功能,Pod可以直接使用服务的默认域名(如
xxx.cluster-xxx.us-east-1.rds.amazonaws.com)访问,域名会自动解析到VPC端点的IP,全程内网传输。
四、额外注意事项
- EKS辅助CIDR的路由:Amazon VPC CNI会自动为辅助CIDR的Pod配置路由,但要确保VPC A的路由表包含到VPC B的条目,否则Pod无法跨VPC通信。
- 安全组优先级:所有涉及的安全组(EKS节点、Pod、VPC B服务)都要正确放行对应流量,避免因安全组拦截导致通信失败。
- S3桶策略:必须明确授权VPC A的IP范围或VPC端点访问权限,否则会被S3的默认拒绝策略拦截。
内容的提问来源于stack exchange,提问作者MiGo
相关产品推荐
相关产品推荐

