You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Fargate私有子网部署遇ResourceInitializationError求助

解决Fargate私有子网拉取ECR镜像超时问题

ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve ecr registry auth: service call has been retried 3 time(s): RequestError: send request failed caused by: Post https://api.ecr.us-east-1.amazonaws.com/: dial tcp 52.**.*.105:443: i/o timeout

问题核心是:你的Fargate任务在无公网访问(无IGW/NAT)的私有子网中,无法通过公网调用ECR API和拉取镜像,必须通过VPC终端节点(PrivateLink)完成AWS内部服务访问。以下是详细修复步骤:

1. 创建ECR和S3所需的VPC终端节点

需要配置3个关键终端节点,让流量完全走AWS私有网络:

  • ECR API终端节点(Interface类型):服务名称com.amazonaws.us-east-1.ecr.api,用于ECR授权、镜像元数据查询
  • ECR镜像拉取终端节点(Interface类型):服务名称com.amazonaws.us-east-1.ecr.dkr,用于实际拉取镜像层
  • S3网关终端节点(Gateway类型):服务名称com.amazonaws.us-east-1.s3,因为ECR镜像实际存储在S3中,拉取时需要访问对应存储桶

创建要点:

  • 所有终端节点都选择你的两个私有子网(不用只留一个,多子网提升可用性)
  • 关联任务使用的安全组,同时确保终端节点的安全组允许**入站HTTPS(443)**流量来自任务安全组
  • Interface类型节点必须勾选「启用DNS解析」,保证任务能通过ECR默认域名访问服务
  • S3网关节点需要将其前缀列表(pl-xxxx)添加到私有子网的路由表,目标指向该网关节点

2. 验证任务执行角色权限

确保ecsTaskExecutionRole附带AmazonECSTaskExecutionRolePolicy托管策略,该策略包含以下必要权限:

  • ecr:GetAuthorizationToken
  • ecr:BatchCheckLayerAvailability
  • ecr:GetDownloadUrlForLayer
  • ecr:BatchGetImage
  • s3:GetObject

如果是自定义策略,必须手动包含上述权限,否则任务无法完成授权和镜像拉取。

3. 安全组规则检查

  • 任务安全组:允许**出站HTTPS(443)**流量到VPC终端节点的IP范围,或直接允许到ECR、S3的前缀列表
  • 终端节点安全组:允许**入站HTTPS(443)**流量来自任务安全组的IP范围

4. 路由表确认

私有子网的路由表不能有指向IGW/NAT的路由(符合你的无公网需求),但必须包含:

  • S3网关终端节点的路由条目(目标为S3前缀列表,下一跳是网关节点)

内容的提问来源于stack exchange,提问作者Mohamed-Ali Karaki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 17:16:02