配置Secrets Manager密钥轮换时Lambda函数遇EndpointConnectionError
解决Secrets Manager密钥轮换Lambda的EndpointConnectionError问题
以下是针对该错误的配置调整方案:
检查Lambda的VPC网络配置
如果Lambda部署在VPC内部,必须确保其能访问Secrets Manager服务:- 优先配置Secrets Manager的VPC接口端点(Interface Endpoint),这样流量无需走公网。需确保:
- 端点的安全组允许Lambda所在安全组的443端口出站流量
- 端点的资源策略允许Lambda执行角色调用Secrets Manager的API
- 若使用公网访问,需保证Lambda所在子网关联了NAT网关/实例,且路由表包含指向NAT网关的
0.0.0.0/0路由规则
- 优先配置Secrets Manager的VPC接口端点(Interface Endpoint),这样流量无需走公网。需确保:
验证Lambda执行角色权限
确认Lambda的IAM执行角色包含密钥轮换所需权限:- 至少需要
secretsmanager:GetSecretValue、secretsmanager:PutSecretValue、secretsmanager:UpdateSecretVersionStage权限 - 角色的信任策略需允许Lambda服务(
lambda.amazonaws.com)AssumeRole - 检查角色是否有针对
arn:aws:secretsmanager:eu-west-1:*:*资源的访问权限
- 至少需要
确认区域一致性
检查Lambda函数的部署区域是否与Secrets Manager所在的eu-west-1区域一致。跨区域访问可能因网络配置复杂导致连通性问题,建议将Lambda部署到同区域。排查网络连通性细节
- 在Lambda所在VPC的子网内启动临时EC2实例,执行
nslookup secretsmanager.eu-west-1.amazonaws.com验证域名解析是否正常 - 用
curl -v https://secretsmanager.eu-west-1.amazonaws.com测试端点的连通性,确认是否能建立TCP连接
- 在Lambda所在VPC的子网内启动临时EC2实例,执行
检查安全组与网络ACL
- Lambda所在安全组需允许**出站HTTPS(443端口)**流量,目标为Secrets Manager端点IP或VPC端点IP
- 子网关联的网络ACL需同时配置入站和出站的443端口允许规则(网络ACL为无状态,双向规则都需设置)
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

