跨VPC通过安全组实现服务访问RDS的可行性及方案咨询
问题解答
是否仅通过安全组就能实现访问需求?
可以,但你的当前配置存在几个需要修正的细节:
- 安全组名称匹配问题:VPC2代码中通过
fromLookupByName查找的是名为PlatformServiceSecurityGroup的安全组,但VPC1里创建的安全组逻辑名是mysg,实际生成的名称可能不匹配,会导致无法正确引用。需要确保查找的安全组名称和VPC1中实际创建的一致。 - 跨VPC安全组引用权限:VPC peering连接需要开启允许跨VPC安全组引用的选项(创建peering时可勾选,或后续在peering连接设置中修改),否则VPC2的安全组无法引用VPC1的安全组。
- 出站规则确认:VPC1中的服务安全组
mysg需确保出站规则允许访问5432端口(AWS自定义安全组默认允许所有出站流量,若未修改则无需额外配置)。
修正后,仅通过安全组即可实现需求:VPC1的服务安全组允许出站到RDS端口,VPC2的RDS安全组允许来自VPC1服务安全组的5432端口入站流量,配合已配置的VPC peering路由,就能完成安全访问。
跨VPC安全通信推荐方案
- 跨VPC安全组引用:如上述实现方式,是最简洁的方案,无需依赖固定IP网段,服务扩容时无需修改安全组规则,适合已建立VPC peering的场景。
- 基于CIDR网段的安全组规则:若跨VPC安全组引用受限,可在RDS安全组中添加入站规则,直接允许VPC1的私有子网CIDR段访问5432端口。缺点是VPC1子网网段变更时需同步更新规则。
- VPC Interface端点:若使用AWS托管服务(如RDS),可创建Interface类型的VPC端点,无需VPC peering,直接通过AWS内部私有网络访问,安全性更高,且无需管理peering路由。
- 中转网关(Transit Gateway):当存在多个VPC需要互访时,中转网关比多个VPC peering更易管理,支持跨VPC的安全组引用或CIDR规则,适合复杂网络架构。
内容的提问来源于stack exchange,提问作者Tien
相关产品推荐
相关产品推荐

