如何安全配置实现Lambda访问公网权限受限的RDS数据库
Lambda安全访问RDS配置方案及故障排查
一、实现Lambda安全访问RDS的两种可行配置
方案1:公网访问模式(保留RDS公网访问能力)
- 将Lambda部署到VPC的私有子网中,为私有子网配置NAT网关并绑定弹性公网IP(EIP)
- 将NAT网关的EIP添加到RDS安全组的入站规则中,仅放行该IP对数据库端口的访问请求即可,无需开放RDS全公网访问权限。所有从该私有子网发起的公网请求都会携带NAT网关的固定EIP,可被RDS安全组正常识别放行。
方案2:内网访问模式(更安全,推荐)
- 首先开启RDS的VPC内网访问能力,获取RDS的内网访问域名
- 将Lambda部署到与RDS相同的VPC下,无需为公网出口配置额外资源
- 在RDS的安全组入站规则中,将Lambda的安全组ID作为源,放行对应数据库端口的访问即可。整个访问链路完全走VPC内网,不暴露到公网,安全性更高。
二、Lambda部署到同VPC后连接失败的排查方向
- 子网与VPC校验:确认Lambda关联的子网与RDS的子网属于同一VPC,若Lambda部署在公有子网且用公网域名访问RDS,需确认Lambda已被分配公网IP,或调整为用内网域名访问。
- 安全组规则校验:确认RDS安全组入站规则已放行Lambda安全组的数据库端口访问;同时确认Lambda安全组的出站规则允许到RDS端口的流量(默认出站规则为全允许,若有自定义限制需调整)。
- 访问地址校验:如果走内网访问链路,确认Lambda代码中使用的是RDS的内网域名,而非公网域名。
- 路由规则校验:确认Lambda所在子网的路由表存在
目标为VPC CIDR、下一跳为local的路由,保证内网流量可以正常转发。 - Lambda执行角色校验:确认Lambda的执行角色已添加
AWSLambdaVPCAccessExecutionRole权限策略,否则Lambda无法正常挂载到VPC网络,会直接导致网络不通。 - RDS访问限制校验:确认RDS未开启仅允许公网访问的配置,支持VPC内网来源的访问请求。
内容的提问来源于stack exchange,提问作者Prashant2329
相关产品推荐
相关产品推荐

