簡體   English   中英

無法從我的 ECS 實例上的 AWS ECR 提取圖像

[英]Not able to pull image from AWS ECR on my ECS instance

我正在使用亞馬遜提供 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 中的任何圖像,但是當我嘗試這樣做時,它給了我以下錯誤:

調用 DescribeRepositories 操作時發生錯誤 (AccessDeniedException):用戶:arn:aws:sts::755671380468:assumed-role/ecsInstanceRole/i-0e3a77458fe98d842 無權執行:ecr:DescribeRepositories on resource:arn:aws:ecr: ap-south-1:755671380468:repository/*

現在,由於錯誤消息表明它沒有ecr:DescribeRepositories並且當我嘗試添加內聯策略並搜索ecr它沒有給出任何結果,所以我如何將這個或其他一些策略添加到我現有的角色中以便我的 ECS 實例能夠下載圖像並將其推送到 ECR 嗎?

您可以將以下內聯策略添加到您的ECSInstance角色,並檢查它的運行情況:

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

或者,您可以使用任務執行角色。 任務執行角色是執行 ECS 操作的 IAM 角色,例如拉取鏡像並將應用程序日志存儲在 CloudWatch 中。

您可以按照此鏈接創建並附加任務執行角色 - https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM