私有EKS Fargate集群下External-secrets无法访问AWS STS问题求助
问题根因
你遇到的超时错误核心是部署在私有EKS Fargate上的External Secrets Pod无法访问公网STS服务端点sts.amazonaws.com,默认私有子网没有公网路由,也没有配置私有AWS服务端点的情况下,公网请求会直接超时,和源码硬编码配置无关。
解决思路
- 方案1:配置STS服务VPC端点(最优私有集群方案,无需公网出口)
- 在EKS集群所属VPC内创建Interface类型的STS服务端点,确保端点关联的安全组入方向开放443端口,允许集群VPC CIDR段访问
- 开启VPC的
enableDnsHostnames和enableDnsSupport参数,开启VPC端点私有DNS解析,此时sts.amazonaws.com会自动解析为VPC内部的STS端点IP,无需修改任何应用配置 - 如果使用AWS中国区,需在SecretStore/ClusterSecretStore的AWS Provider配置中显式指定对应区域,避免调用全球端点
- 方案2:为私有子网配置公网出口
若业务允许Pod访问公网,在Fargate Pod所在私有子网的路由表中添加指向NAT网关的公网路由,NAT网关需部署在公有子网并绑定弹性公网IP,即可正常访问公网STS端点 - 方案3:显式指定STS区域端点
无需修改源码,直接在SecretStore/ClusterSecretStore的AWS Provider配置中添加stsEndpoint参数,填写你所在区域的STS服务地址,例如https://sts.us-east-1.amazonaws.com,同时指定对应region参数即可
验证步骤
- 在集群中启动临时调试Pod,执行
curl https://sts.amazonaws.com确认请求无超时,可正常收到响应 - 重启External Secrets控制器Pod,重新应用ExternalSecret资源,查看控制器日志确认同步成功
内容的提问来源于stack exchange,提问作者Parth Kansara
相关产品推荐
相关产品推荐

