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

如何让同VPC内的Lambda通过私有连接访问Aurora PostgreSQL?

先给结论:用VPC私有连接绝对是最佳实践

把数据库暴露在公网本来就有安全风险,换成VPC内部的私有连接能彻底切断公网访问路径,完全符合AWS的安全架构建议,必须安排。

具体实现步骤

1. 确认Aurora集群已配置私有端点

  • 登录AWS控制台进入RDS服务,找到你的Aurora PostgreSQL集群
  • 查看「连接与安全性」配置:确保集群已绑定VPC内的私有子网(即无互联网网关、仅VPC内部可访问的子网)
  • 记录集群的私有端点域名(格式类似my-db-cluster-instance-1.xxxxxx.us-east-1.rds.amazonaws.com),优先用域名而非固定私有IP——因为Aurora故障转移时IP会变化,域名会自动指向新实例,稳定性更强

2. 将Lambda函数配置到目标VPC

  • 进入Lambda控制台,打开你的函数,切换到「配置」标签页,点击「VPC」选项
  • 点击「编辑」,选择Aurora集群所在的VPC,再勾选Aurora使用的私有子网(至少选2个,保障高可用)
  • 为Lambda分配专用安全组,该安全组需允许出站访问5432端口(PostgreSQL默认端口)

3. 配置Aurora安全组的入站规则

  • 进入EC2控制台的安全组页面,找到Aurora集群关联的安全组
  • 添加一条入站规则:允许来自Lambda安全组的5432端口流量,确保Lambda能正常发起数据库连接

4. 更新Lambda的数据库连接串

  • 将原公网连接串替换为私有端点域名的版本,示例:
    postgresql://postgres:myPassword@my-db-cluster-private-endpoint.us-east-1.rds.amazonaws.com:5432/postgres?schema=SCHEMA
    

5. 验证整个链路

  • 在Lambda中添加简单测试代码,比如连接数据库执行SELECT 1;,确认连接成功
  • 测试API Gateway触发Lambda的完整流程,确保没有网络超时、连接拒绝等问题
额外注意事项
  • Lambda配置到VPC后默认无法访问公网,如果你的Lambda需要获取AWS Secrets Manager中的数据库密码(绝对不要硬编码密码!)或访问其他公网服务,可给私有子网配置NAT网关,或使用VPC端点访问AWS服务(后者更安全)
  • 数据库密码必须存储在AWS Secrets Manager中,Lambda通过IAM权限获取,避免代码泄露风险
  • 确保Aurora所在私有子网的路由表未关联互联网网关,保持纯私有网络环境

内容的提问来源于stack exchange,提问作者red house 87

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 11:45:36