私有子网Lambda能否访问公有子网AWS资源及联网方案咨询
解决方案说明
核心结论
私有子网的Lambda完全可以访问公有子网内的RDS、ElastiCache、EFS,只要配置好安全组和路由规则即可。以下是具体实施步骤和可选优化方案:
一、确保跨子网访问的基础配置
- 安全组规则调整:为公有子网的RDS、ElastiCache、EFS安全组添加入站规则,允许私有子网的Lambda安全组(或私有子网CIDR段)访问对应端口:
- RDS:
3306(MySQL)、5432(PostgreSQL)等数据库端口 - ElastiCache:
6379(Redis)、11211(Memcached) - EFS:
2049(NFS协议端口)
- RDS:
- 路由表验证:确认私有子网和公有子网的路由表包含同VPC内子网互访的规则(默认VPC路由表已自带此规则,自定义路由表需手动添加)
二、Lambda迁移至私有子网的标准流程
- 将Lambda部署到至少两个私有子网(满足高可用要求)
- 在公有子网部署NAT网关,将私有子网路由表中
0.0.0.0/0的流量指向该NAT网关,实现Lambda的互联网访问 - 为Lambda配置精细化IAM权限,确保能访问目标RDS、ElastiCache、EFS资源(避免过度授权,比如仅授予特定资源的访问权限)
三、替代优化方案(无需迁移Lambda)
如果不想迁移Lambda到私有子网,可通过绑定弹性ENI+弹性IP让公有子网的Lambda联网:
- 为Lambda关联弹性网络接口(ENI)并绑定弹性IP,使Lambda获得公网IP直接访问互联网
- 注意:此方式需手动管理ENI和弹性IP,Lambda并发数受ENI数量限制,仅适合小规模场景
关键安全提示
- 禁止给公有子网的RDS、ElastiCache开放公网访问权限,仅允许VPC内流量访问,降低安全风险
- 安全组规则遵循最小权限原则,避免开放
0.0.0.0/0的入站访问,仅授权Lambda所在私有子网的CIDR或安全组
内容的提问来源于stack exchange,提问作者Rehan CH
相关产品推荐
相关产品推荐

