EC2 实例策略(配置文件)不允许从 ecr 拉取图像
EC2 instance policy (profile) not allowing pull image from ecr
我已将以下策略附加到我的 EC2 实例
{
"Sid": "ECRPull",
"Effect": "Allow",
"Action": [
"ecr:Describe*",
"ecr:Get*",
"ecr:List*",
"ecr:BatchGetImage",
"ecr:BatchCheckLayerAvailability"
],
"Resource": [
"arn:aws:ecr:eu-west-1:123456789:repository/my-repo"
]
}
但是实例中的以下 docker pull
失败了,为什么?
docker pull 123456789.dkr.ecr.eu-west-1.amazonaws.com/my-repo:sometag
no basic auth credentials
docker
命令不调用 AWS IAM 服务,因为它不是 AWS 的一部分。在发出 docker 命令之前,您必须使用 aws 命令。
aws ecr get-login
给你一个临时令牌。
使用 AWS 的令牌和用户名进行 docker 登录
docker login –u AWS –p <token from previous command> –e none https://<aws_account_id>.dkr.ecr.us-east-1.amazonaws.com
我已将以下策略附加到我的 EC2 实例
{
"Sid": "ECRPull",
"Effect": "Allow",
"Action": [
"ecr:Describe*",
"ecr:Get*",
"ecr:List*",
"ecr:BatchGetImage",
"ecr:BatchCheckLayerAvailability"
],
"Resource": [
"arn:aws:ecr:eu-west-1:123456789:repository/my-repo"
]
}
但是实例中的以下 docker pull
失败了,为什么?
docker pull 123456789.dkr.ecr.eu-west-1.amazonaws.com/my-repo:sometag
no basic auth credentials
docker
命令不调用 AWS IAM 服务,因为它不是 AWS 的一部分。在发出 docker 命令之前,您必须使用 aws 命令。
aws ecr get-login
给你一个临时令牌。
使用 AWS 的令牌和用户名进行 docker 登录
docker login –u AWS –p <token from previous command> –e none https://<aws_account_id>.dkr.ecr.us-east-1.amazonaws.com