[英]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.