将映像从EC2 Container Registry部署到Elastic Beanstalk凭据?

时间:2016-06-16 13:45:00

标签: amazon-web-services authentication elastic-beanstalk amazon-elastic-beanstalk amazon-ecs

鉴于以下设置:

为了部署我的应用程序,Elastic Beanstalk single container guide表示要生成Dockerrun.aws.json文件。

要使用来自(任何)私有存储库的映像的Elastic Beanstalk指南also says,需要将凭证文件(带有身份验证令牌和电子邮件地址)添加到S3存储桶中。

身份验证to the EC2 Container Registry涉及查询docker login命令可以使用的令牌, 但它仅在12小时内有效

所以,理论上,我可以按照Elastic Beanstalk指南,使用aws ecr get-logindocker login ...命令让Docker创建我需要的配置文件,将其转换为{{1}将文件放在S3上。

如果我将我的.dockercfg文件作为新的应用程序版本上传到Elastic Beanstalk,我可以立即部署它,如果还没有过去12小时。

我担心的是12小时后会发生什么?如果Elastic Beanstalk需要自动扩展我的应用程序并启动更多实例,如果它尝试使用该S3存储的凭据,它将失败。或者如果我意识到我需要回滚到我的应用程序的先前版本,我不能通过过去的应用程序版本的Elastic Beanstalk列表来做到这一点;我需要安装AWS CLI的计算机并执行Dockerrun.aws.jsonaws ecr get-login,再次上传到S3舞蹈?

在Elastic Beanstalk和EC2 Container Registry之间设置身份验证是否有一种不那么脆弱的方式,这样12小时的超时不是问题?

1 个答案:

答案 0 :(得分:2)

在此处仅列出相关的ECR FAQ answer(重点强调):

  

您需要做的就是在Dockerrun.aws.json配置中指定Amazon ECR存储库,并将AmazonEC2ContainerRegistryReadOnly策略附加到您的容器实例角色