0

我们计划实施具有多容器Docker的AWS Elastic Beanstalk。我有一个全面访问所有服务的IAM用户。 我已经创建了docker镜像并成功推送到AWS Elastic Container服务。 当我使用AWS Elastic Beanstalk将Docker镜像(.json)部署到服务器时,我得到了下面的问题。请指导我解决问题。 我已检查IAM用户策略并添加Amazon ECS,Elastic Beanstalk完全访问权限。 我列出我以.json代码为您的文献..AWS Elastic Beanstalk - 多容器Docker

的Json代码:

{ 
    "AWSEBDockerrunVersion": "2", 
"containerDefinitions": [ 

{ 

     "name": "agshift_strawberry", 
     "image": "705395670584.dkr.ecr.us-west-2.amazonaws.com/agshift_strawberry:latest", 
     "essential": true, 
     "memory": 512, 
     "portMappings": [ 
     { 
      "hostPort": 80, 
      "containerPort": 80 
     } 
     ] 
} 

] 
} 

错误:

ECS task stopped due to: Essential container in task exited. (agshift_strawberry: CannotPullContainerError: AccessDeniedException: User: arn:aws:sts::705395670584:assumed-role/aws-elasticbeanstalk-ec2-role/i-05f177a336c68b998 is not authorized to perform: ecr:GetAuthorizationToken on resource: * status code: 400, request id: c37a11c1-)

回答

1
  1. 打开IAM控制台
  2. 单击角色
  3. 查找aws-elasticbeanstalk-ec2-role
  4. 添加包含ecr:GetAuthorizationToken权限的策略。