【问题标题】:Fargate Task in ECS is not able to pull image from ECR repository using ECR interface endpointsECS 中的 Fargate 任务无法使用 ECR 接口端点从 ECR 存储库中提取映像
【发布时间】:2020-12-03 02:56:56
【问题描述】:

我在从 ECR 存储库中提取 docker 映像并收到错误时遇到问题 - CannotPullContainerError: Error response from daemon

在我的 VPC 中,我有一个未连接 NAT 网关的私有子网。因此,为了访问 ECR,我创建了以下 ECR 接口端点和 s3 端点,并将私有子网与它们相关联,

  1. com.amazonaws.region.ecr.api
  2. com.amazonaws.region.ecr.dkr
  3. com.amazonaws.region.s3

我还将存储库策略更新到下面,

{
"Version": "2008-10-17",
"Statement": [
    {
        "Sid": "AllowPushPull",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::account-id:root"
        },
        "Action": [
            "ecr:GetDownloadUrlForLayer",
            "ecr:BatchGetImage",
            "ecr:BatchCheckLayerAvailability",
            "ecr:PutImage",
            "ecr:InitiateLayerUpload",
            "ecr:UploadLayerPart",
            "ecr:CompleteLayerUpload"
        ]
    }
]

}

我还更新了 fargate 任务安全组以允许来自 vpc 范围的 443 端口。但是,我仍然面临同样的问题并且无法提取图像。你能帮忙吗?

【问题讨论】:

  • 你的任务执行策略怎么样?

标签: amazon-web-services amazon-ecs aws-fargate amazon-ecr


【解决方案1】:

我认为如果你的 VPC 端点是正确的,你可能需要在上面的权限下添加下面的权限。

"ecr:GetAuthorizationToken"

谢谢

阿什·巴蒂亚

【讨论】:

  • 我已使用上述权限更新了政策。但是,我仍然遇到同样的错误。
  • docker image url 好吗?你能发布完整的错误或完整的任务定义吗?
  • 上述策略也是任务执行策略还是存储库策略??你提到的。应该是任务执行策略。
  • 是的,docker image URI 很好,就像我在公共子网中运行 fargate 任务一样,那么任务运行没有问题。
  • 我提到了存储库策略。您是指 Fargate 任务的 IAM 角色中提供的策略吗?这也附加了所需的策略 - AmazonECSTaskExecutionRolePolicy、AmazonECS_FullAccess、CloudWatchLogsFullAccess、AmazonS3FullAccess
【解决方案2】:

在更改 DHCP 选项以添加 AmazonProvidedDNS 并添加 cloudwatch 日志端点后问题得到解决。

可能会帮助某人!

【讨论】:

    猜你喜欢
    • 2019-03-25
    • 2020-04-25
    • 2022-12-22
    • 2021-10-11
    • 2021-12-10
    • 2020-09-11
    • 2016-11-17
    • 1970-01-01
    • 2022-01-10
    相关资源
    最近更新 更多