在 AWS EC2 上从 AWS ECR 中提取图像,而不使用 docker login,但使用 EC2 实例角色和 ECR 存储库权限
Posted
技术标签:
【中文标题】在 AWS EC2 上从 AWS ECR 中提取图像,而不使用 docker login,但使用 EC2 实例角色和 ECR 存储库权限【英文标题】:Pull images from AWS ECR on AWS EC2 without using docker login but using EC2 Instance role and ECR repository permissions 【发布时间】:2018-03-28 03:29:29 【问题描述】:我们能否从运行 docker 的 AWS EC2 实例上的 AWS ECR 存储库中提取图像,分配 AWS EC2 实例角色/策略和提供对 ECR 访问的 AWS ECR 存储库权限。
我目前已提供所有权限,但我得到的错误是“未经授权:需要身份验证”。
让我知道这是否可行。
【问题讨论】:
您是否能够在不登录且仅使用角色本身的情况下执行它? 我可以使用登录凭据使用它,但它们的有效期为 12 小时,所以我想知道我是否可以提供具有角色/策略组合的实例来做同样的事情。 【参考方案1】:您实际上可以跳过 docker 登录步骤,甚至使用 ecr credential helper 仍然执行 docker 登录的 aws ecr get-token。
使用助手,只需配置 docker:
"credHelpers":
"aws_account_id.dkr.ecr.region.amazonaws.com": "ecr-login"
参考:https://lwpro2.wordpress.com/2019/10/30/authenticating-amazon-ecr-repositories-for-docker-cli-with-credential-helper/
【讨论】:
【参考方案2】:在您的 cron 中运行以下命令,cron 将刷新您的登录凭据。
COMMAND=`eval aws ecr get-login --region us-west-2`
echo `eval $COMMAND`
因此您可以避免任何登录到 ecr 本身并始终无缝访问。
【讨论】:
感谢这种方法,但我的主要疑问是如何使用 AWS IAM 角色/策略来促进这一点。以上是关于在 AWS EC2 上从 AWS ECR 中提取图像,而不使用 docker login,但使用 EC2 实例角色和 ECR 存储库权限的主要内容,如果未能解决你的问题,请参考以下文章
sh [在AWS EC2 Linux服务器上从PHP 5.X.X升级到PHP 7] #linux #aws