我是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任务因以下原因而停止:任务中的基本容器已退出。 (myimage:CannotPullContainerError:AccessDeniedException:User: 阿尔恩:AWS:STS :: XXX:假设角色/ AWS-elasticbeanstalk-EC2角色/ I-XYZ 无权执行:ecr:资源上的GetAuthorizationToken:* 状态代码:400,请求ID:4143c35d - )
我将AWSElasticBeanstalkReadOnlyAccess添加到aws-elasticbeanstalk-ec2-role中,但它不会改变任何内容......
帮助?!
答案 0 :(得分:5)
我不确定它的编写地点,但我需要将实际的AmazonEC2ContainerRegistryReadOnly政策添加到aws-elasticbeanstalk-ec2-role。 AmazonEC2ContainerRegistryReadOnly包含GetAuthorizationToken操作。
答案 1 :(得分:1)
选择 aws-elasticbeanstalk-ec2-role
在“权限”选项卡上,选择“附加策略”。
选择 AmazonEC2ContainerRegistryReadOnly
选择附加政策