从AWS ECS单独帐户中的私有注册表中提取容器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从AWS ECS单独帐户中的私有注册表中提取容器相关的知识,希望对你有一定的参考价值。
如何获取我的ECS Fargate群集,以从另一个AWS账户中的私有Docker注册表中提取容器?如果私有Docker注册表位于同一帐户中,则不需要身份验证,但会得到CannotPullContainerError: Error response from daemon: pull access denied for <account id>.dkr.ecr.ap-southeast-2.amazonaws.com/project/container, repository does not exist or may require 'docker login'
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/private-auth.html谈论身份验证和私有注册表,但似乎没有提及我在另一个AWS账户中使用ECR的用例。看起来我可以在ECR权限中添加对已定义的AWS账户列表的访问权限,但可能还有其他方法吗?为ECR生成的密码似乎只能使用12个小时,因此无法使用。
在运行Fargate服务的帐户中,任务定义中指定的任务执行角色应具有拉取图像的权限。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage"
],
"Resource": "arn:aws:ecr:eu-west-1:<account id>:repository/project",
"Effect": "Allow"
},
{
"Action": "ecr:GetAuthorizationToken",
"Resource": "*",
"Effect": "Allow"
}
]}
并且在包含ECR的帐户中,您应该在ecr策略中指定允许包含任务执行角色的帐户访问存储库。在下面的ecr策略中,添加了整个帐户,这在安全性方面可能有点高,但是您可以加强一些操作。
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "PullImage",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<accountid>:root"
},
"Action": [
"ecr:BatchGetImage",
"ecr:DescribeImages",
"ecr:DescribeRepositories",
"ecr:GetDownloadUrlForLayer",
"ecr:GetLifecyclePolicy",
"ecr:GetLifecyclePolicyPreview",
"ecr:GetRepositoryPolicy",
"ecr:ListImages"
]
}
]
}
以上是关于从AWS ECS单独帐户中的私有注册表中提取容器的主要内容,如果未能解决你的问题,请参考以下文章
在单独的 docker 容器 (AWS ECS) 中连接到 MongoDB