部署在VPC私有子网的AWS Lambda无法获取私有IP问题排查
排查Lambda使用Vault Extension时无法获取私有IP导致连接失败的问题
以下是针对该问题的具体排查方向:
检查Lambda所在私有子网的网络配置
- 确认子网路由表中存在指向Vault实例所在CIDR(如10.73.1.0/24)的路由条目,确保流量能直达Vault所在网络;若Vault在同一VPC,路由应指向本地而非NAT网关
- 检查子网网络ACL,确保允许出站TCP 8200端口的流量,同时允许入站的TCP ESTABLISHED/RELATED响应流量
- 核实子网的私有IP地址池是否有剩余,若IP耗尽,Lambda会分配链路本地 fallback 地址
验证Vault实例的网络可达性
- 在同VPC的测试EC2实例(需处于能访问Vault的子网)中执行
nc -zv 10.73.1.100 8200或telnet 10.73.1.100 8200,确认Vault服务端口正常开放且可连通 - 检查Vault实例的安全组规则,是否允许Lambda所在子网的CIDR访问8200端口
- 在同VPC的测试EC2实例(需处于能访问Vault的子网)中执行
排查Lambda的ENI与权限配置
- 确认
lambda_role_vault_lab角色已包含ec2:CreateNetworkInterface、ec2:DescribeNetworkInterfaces、ec2:DeleteNetworkInterface权限,且无权限边界限制这些操作 - 前往EC2控制台的网络接口页面,查找Lambda自动创建的ENI,检查其是否成功分配了私有IP,状态是否为正常可用
- 若Lambda配置了多个子网,确认所有子网均有可用IP且路由配置正确,避免因部分子网不可用导致分配 fallback 地址
- 确认
检查Vault Lambda Extension的配置与日志
- 确认Extension的环境变量
VAULT_ADDR是否正确设置为http://10.73.1.100:8200,无地址拼写错误 - 在Lambda日志组中查看Extension专属的日志流,获取比函数崩溃日志更详细的错误信息,比如是否在获取ENI IP时出现异常
- 确认Extension的环境变量
排查VPC基础网络配置
- 确认VPC的
enableDnsSupport和enableDnsHostnames均已设为true,这两项配置会影响ENI的IP分配与正常使用 - 检查VPC的DHCP选项集,确保域名服务器配置正确,避免影响Lambda实例获取私有IP
- 确认VPC的
内容的提问来源于stack exchange,提问作者DavidJ
相关产品推荐
相关产品推荐

