我最近在 AWS ECR 中创建了一个新存储库,并且正在尝试推送图像。我正在复制/粘贴通过存储库页面上的“查看推送命令”按钮提供的说明。我将这些复制在这里以供参考:
aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin 123456789.dkr.ecr.us-west-2.amazonaws.com
(“登录成功”)
-
docker build -t myorg/myapp .
-
docker tag myorg/myapp:latest 123456789.dkr.ecr.us-west-2.amazonaws.com/myorg/myapp:latest
-
docker push 123456789.dkr.ecr.us-west-2.amazonaws.com/myorg/myapp:latest
但是,当我进入 docker push
步骤时,我看到:
> docker push 123456789.dkr.ecr.us-west-2.amazonaws.com/myorg/myapp:latest
The push refers to repository [123456789.dkr.ecr.us-west-2.amazonaws.com/myorg/myapp]
a53c8ed5f326: Retrying in 1 second
78e16537476e: Retrying in 1 second
b7e38d172e62: Retrying in 1 second
f1ff72b2b1ca: Retrying in 1 second
33b67aceeff0: Retrying in 1 second
c3a550784113: Waiting
83fc4b4db427: Waiting
e8ade0d39f19: Waiting
487d5f9ec63f: Waiting
b24e42eb9639: Waiting
9262398ff7bf: Waiting
804aae047b71: Waiting
5d33f5d87bf5: Waiting
4e38024e7e09: Waiting
EOF
我想知道这是否与与此存储库关联的权限/策略有关。目前,此存储库没有附加任何语句。那是缺少的部分吗?如果是这样,该声明会是什么样子?我试过这个,但没有效果:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowPutImage",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789:root"
},
"Action": "ecr:PutImage"
}
]
}
奖励积分:我最终想在 CDK CodeBuildAction 中使用它。我遇到了与上面相同的错误,所以我检查我是否在我的本地终端中得到了相同的结果,我就是。因此,如果在 CDK CodeBuildAction 中使用的策略声明需要有所不同,这些细节也将不胜感激。
提前感谢您的建议和建议。
尝试使用AWS和Docker CLI手动上传图像时,我也遇到了同样的问题。我能够通过进入ECR->存储库 - >权限来修复它,然后添加带有
principal:*
和以下操作的新策略语句:确保添加更多限制性校长。在这种情况下,我只是想看看权限是否是问题,并且可以肯定的是。