【问题标题】:Not able to pull image from AWS ECR on my ECS instance无法从我的 ECS 实例上的 AWS ECR 提取图像
【发布时间】:2020-09-11 06:55:08
【问题描述】:

我正在使用亚马逊提供 ECSInstance 角色运行 ECS 实例,其 JSON 中的策略如下所示:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeTags",
                "ecs:CreateCluster",
                "ecs:DeregisterContainerInstance",
                "ecs:DiscoverPollEndpoint",
                "ecs:Poll",
                "ecs:RegisterContainerInstance",
                "ecs:StartTelemetrySession",
                "ecs:UpdateContainerInstancesState",
                "ecs:Submit*",
                "ecr:GetAuthorizationToken",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "*"
        }
    ]
}

我可以看到 ECR 特定的访问权限,其中包括 Submit* 和 "ecr:BatchGetImage" 等,使用它们我应该能够简单地提取 ECR 中的任何图像,但是当我尝试这样做时,它给了我以下错误:

调用时发生错误 (AccessDeniedException) DescribeRepositories 操作: 用户: arn:aws:sts::755671380468:假定角色/ecsInstanceRole/i-0e3a77458fe98d842 无权执行:ecr:DescribeRepositories 资源: arn:aws:ecr:ap-south-1:755671380468:repository/*

现在,由于错误消息表明它没有 ecr:DescribeRepositories 并且当我尝试添加内联策略并搜索 ecr 它没有给出任何结果,所以我该如何添加这个或一些我现有角色的其他策略,以便我的 ECS 实例能够下载图像并将其推送到 ECR?

【问题讨论】:

  • “尝试添加内联策略并搜索 ecr 没有给出任何结果”是什么意思?您可以手动添加该行。
  • 您能解释一下您是如何以及在何处添加内联策略的吗?它的json格式是什么?
  • @Marcin,我没有添加内联策略,因为我找不到正确的策略,你能建议什么应该是正确的内联策略,我会添加它。
  • 我将发布一个示例作为答案,因为我无法在 cmets 中格式化代码。
  • @Marcin,谢谢,我只是在测试这个,会随时通知你

标签: amazon-web-services amazon-iam amazon-ecr


【解决方案1】:

或者,您可以使用任务执行角色。任务执行角色是执行 ECS 操作的 IAM 角色,例如拉取图像并将应用程序日志存储在 CloudWatch 中。

您可以点击此链接创建并附加任务执行角色 - https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html

【讨论】:

    【解决方案2】:

    您可以将以下inline policy 添加到您的ECSInstance 角色中,并检查它是如何进行的:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": "ecr:DescribeRepositories",
                "Resource": "*"
            }
        ]
    }
    

    【讨论】:

      猜你喜欢
      • 2019-08-02
      • 1970-01-01
      • 2019-03-25
      • 2022-12-22
      • 2016-11-17
      • 2019-05-26
      • 1970-01-01
      • 1970-01-01
      • 2018-03-28
      相关资源
      最近更新 更多