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

如何配置AWS Firewall规则允许EKS集群访问EC2上的数据库且不开放公网访问

EKS集群访问EC2托管数据库的安全组配置方案

核心逻辑是通过AWS安全组的资源引用能力配置访问规则,完全不需要开放公网权限,仅允许EKS侧指定资源访问数据库。


1. 确认EKS侧需要放行的安全组

根据你的集群部署模式,选择对应的安全组即可:

  • 托管节点组模式:使用EKS集群默认的集群安全组(名称格式一般为eks-cluster-sg-<集群名称>-<随机后缀>),或者你自定义绑定给节点实例的安全组
  • Fargate无节点模式:使用EKS Fargate Pod默认关联的安全组(名称格式一般为eks-fargate-sg-<集群名称>-<随机后缀>)
  • 已开启Pod安全组功能:直接使用你绑定给数据库访问工作负载的Pod专属安全组,权限粒度更精细

2. 配置数据库EC2的安全组入站规则

打开数据库EC2实例绑定的安全组配置页,添加如下入站规则:

  • 端口范围:填写你的数据库服务端口,比如MySQL填3306、PostgreSQL填5432
  • 协议:默认TCP即可
  • 源地址:不要填写IP段,直接选择上一步拿到的EKS侧安全组ID作为源
  • 描述:可选填写EKS集群内部访问数据库,方便后续运维识别

安全组之间的引用是AWS原生的访问控制能力,只有关联了对应源安全组的资源才能命中这条规则,完全不会开放给公网,符合最小权限原则。

3. 连通性验证

你可以在EKS集群中启动临时Pod验证连通性,参考命令:

kubectl run -it --rm db-conn-test --image=busybox:1.36 -- nc -zv <数据库EC2内网IP> <数据库端口>

如果返回open或者succeeded提示,说明配置生效。

可选优化建议

  • 若仅部分工作负载需要访问数据库,建议开启EKS的Security Groups for Pods功能,仅给对应工作负载绑定专用安全组,数据库安全组仅放行该Pod安全组,进一步收窄访问范围
  • 建议不要给数据库EC2实例分配公网IP,所有访问均走VPC内网链路,完全规避公网暴露风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:39:03