Amazon web services 从AWS ECS中单独帐户中的私有注册表中提取容器

Amazon web services 从AWS ECS中单独帐户中的私有注册表中提取容器,amazon-web-services,amazon-ecs,amazon-ecr,Amazon Web Services,Amazon Ecs,Amazon Ecr,如何让我的ECS Fargate群集从另一个AWS帐户中的私有Docker注册表中提取容器?如果私有Docker注册表在同一个帐户中,我不需要身份验证,但我得到CannotPullContainerError:Error-response-from-daemon:pull访问被拒绝谈论身份验证和私有注册表,但似乎没有提到我在另一个AWS帐户中的ECR用例。看起来我可以在ECR权限中添加对AWS帐户定义列表的访问权限,但可能还有其他方法?为ECR生成的密码似乎只持续12小时,因此无法工作。在运行f

如何让我的ECS Fargate群集从另一个AWS帐户中的私有Docker注册表中提取容器?如果私有Docker注册表在同一个帐户中,我不需要身份验证,但我得到CannotPullContainerError:Error-response-from-daemon:pull访问被拒绝谈论身份验证和私有注册表,但似乎没有提到我在另一个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政策中,添加了整个帐户,这可能在安全方面有点明智,但您可以收紧

{ 版本:2008-10-17, 声明:[ { 希德:PullImage, 效果:允许, 负责人:{ AWS:arn:AWS:iam:::根 }, 行动:[ ecr:BatchGetImage, ecr:描述图像, ecr:描述职位, ecr:GetDownloadUrlForLayer, ecr:GetLifecyclePolicy, ecr:GetLifecyclePolicyPreview, ecr:GetRepositoryPolicy, ecr:列表图像 ] } ]
}

您需要授予一个策略,它才能工作:。还有更多信息:是的,据我所知,将帐户添加到ECR权限似乎是实现这一点的最佳方法,可能是唯一的方法?。