如何获取AWS Lambda服务专属的IP地址范围?
如何获取AWS Lambda服务专属的IP地址范围?
好问题!确实AWS官方的通用IP范围列表里,直接定位到Lambda专属的条目有点不够清晰,不过有几个靠谱的办法可以精准获取:
利用AWS官方IP范围JSON文件过滤
AWS会定期发布包含所有云服务IP范围的JSON文件,我们可以通过命令行工具(比如jq)快速筛选出Lambda相关的IP段。- 获取所有区域的Lambda IPv4范围:
curl -s https://ip-ranges.amazonaws.com/ip-ranges.json | jq '.prefixes[] | select(.service == "LAMBDA")' - 如果需要指定区域(比如美国东部us-east-1),可以再加区域过滤:
curl -s https://ip-ranges.amazonaws.com/ip-ranges.json | jq '.prefixes[] | select(.service == "LAMBDA" and .region == "us-east-1")' - 要是需要IPv6范围,把命令里的
.prefixes换成.ipv6_prefixes就行。
- 获取所有区域的Lambda IPv4范围:
查看VPC内Lambda的实际IP范围
如果你的Lambda函数部署在VPC子网中,它会使用该子网配置的CIDR范围内的IP。你可以直接在AWS控制台的VPC子网页面查看对应子网的IP段;也可以在Lambda代码里临时打印自身的出口IP,用来验证(比如Python代码:import requests; print(requests.get("https://api.ipify.org").text))。不过这个方法只能拿到单个实例的IP,适合小范围验证,要获取全量范围还是推荐第一种方法。额外提示
Lambda的IP是动态分配的,同一区域的Lambda会从官方公布的CIDR范围里随机选取,所以不要依赖单个固定IP来做配置,最好把整个Lambda IP段加入到你的白名单或安全组规则中。如果需要Lambda使用固定出口IP,通常的做法是搭配NAT网关或者VPC端点来实现。
备注:内容来源于stack exchange,提问作者mrgou




