繁体   English   中英

带有 Amazon ECR Docker 映像的 AWS Elastic Beanstalk

[英]AWS Elastic Beanstalk with Amazon ECR Docker image

我是 AWS 的新手,正在尝试将多容器 Docker 应用程序部署到 Elastic Beanstalk。 我的 Dockerrun.aws.json 文件非常简单,它是唯一上传到 EB 的内容:

{
  "AWSEBDockerrunVersion": 2,
  "containerDefinitions": [
    {
      "name": "mycontainer",
      "image": "somethingsomething.eu-central-1.amazonaws.com/myimage",
      "essential": true,
      "memory": 128
    }
  ]
}

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker.container.console.html 中,它说在使用上传到 Amazon ECR 的 Docker 映像时:

但是,您确实需要通过向环境的实例配置文件添加权限来为您的实例提供访问 Amazon ECR 存储库中的图像的权限。 您可以将 AmazonEC2ContainerRegistryReadOnly 托管策略附加到实例配置文件,以提供对您账户中所有 Amazon ECR 存储库的只读访问权限

部署应用程序时,它会引发以下错误:

ECS 任务因以下原因停止:任务中的基本容器已退出。 (我的图像:CannotPullContainerError:AccessDeniedException:用户:arn:aws:sts::xxx:assumed-role/aws-elasticbeanstalk-ec2-role/i-xyz 未被授权执行:资源上的 ecr:GetAuthorizationToken:* 状态代码:400 , 请求 id: 4143c35d-)

我将 AWSElasticBeanstalkReadOnlyAccess 添加到 aws-elasticbeanstalk-ec2-role,但它没有改变任何东西......

帮助?!

我不确定它写在哪里,但我需要实际将 AmazonEC2ContainerRegistryReadOnly 策略添加到 aws-elasticbeanstalk-ec2-role。 AmazonEC2ContainerRegistryReadOnly 包含 GetAuthorizationToken 操作。

根据https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-instanceprofile.html#iam-instanceprofile-addperms

  1. 打开https://console.aws.amazon.com/iam/home#roles

  2. 选择aws-elasticbeanstalk-ec2-role

  3. 在权限选项卡上,选择附加策略。

  4. 选择AmazonEC2ContainerRegistryReadOnly

  5. 选择附加策略

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM