ECS Fargate无法拉取ECR镜像:Resourceinitializationerror求助
公有子网部署ECS服务拉取私有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-west-2.amazonaws.com/": dial tcp: lookup api.ecr.us-west-2.amazonaws.com: i/o timeout
已尝试Stack Overflow及AWS官方知识库多种方案仍未解决,相关配置如下:
1. 任务定义
{ "family": "chat-app-frontend", "containerDefinitions": [ { "name": "frontend", "image": "576765093341.dkr.ecr.us-west-2.amazonaws.com/frontend:latest", "cpu": 0, "portMappings": [ { "name": "frontend-80-tcp", "containerPort": 80, "hostPort": 80, "protocol": "tcp", "appProtocol": "http" } ], "essential": true, "environment": [], "mountPoints": [], "volumesFrom": [], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "true", "awslogs-group": "/ecs/chat-app-frontend", "awslogs-region": "us-west-2", "awslogs-stream-prefix": "ecs" } } } ], "taskRoleArn": "arn:aws:iam::576765093341:role/ecsTaskExecutionRole", "executionRoleArn": "arn:aws:iam::576765093341:role/ecsTaskExecutionRole", "networkMode": "awsvpc", "requiresCompatibilities": [ "FARGATE" ], "cpu": "1024", "memory": "3072", "runtimePlatform": { "cpuArchitecture": "X86_64", "operatingSystemFamily": "LINUX" }, "tags": [ { "key": "ecs:taskDefinition:createdFrom", "value": "ecs-console-v2" } ] }
2. ECS任务执行角色
已附加ecs-extra-services-access策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "ssm:GetParameters", "secretsmanager:GetSecretValue", "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds", "secretsmanager:ListSecrets" ], "Resource": [ "arn:aws:secretsmanager:us-west-2:576765093341:secret:prod/ecr-private-registry", "arn:aws:kms:us-west-2:576765093341:key/807cbd08-a0ce-4948-b681-a49c7553003a" ] } ] }
3. VPC端点
已附加到公有子网,com.amazonaws.us-west-2.secretsmanager端点策略:
{ "Statement": [ { "Sid": "AccessSpecificAccount", "Principal": { "AWS": "*" }, "Action": "secretsmanager:*", "Effect": "Allow", "Resource": "*" } ] }
4. 安全组
ECS任务及所有端点共用同一安全组。
5. 其他配置
- 任务定义、子网均已启用创建公网IP
- VPC已启用DNS解析和主机名
- 使用
--endpoint-url https://api.ecr.us-west-2.amazonaws.com创建镜像仓库 - 配置ECR私有注册表权限时提示“Not allowed”,无具体原因
目前无日志生成,怀疑taskExecutionRole策略未生效,恳请协助排查。
内容的提问来源于stack exchange,提问作者user14810677
相关产品推荐
相关产品推荐

