【发布时间】:2018-02-07 11:35:59
【问题描述】:
我的 EC2 实例无法使用 IAM 角色进行身份验证。该实例在 AWS 控制台中显示正确的角色:IAM role: Docker-WorkerRole-DPET4SO6HV87。单击它会打开角色控制台,我可以在其中看到列出的正确策略:'ecr-pull-image'。单击显示以下权限:
{
"Version": "2008-10-17",
"Statement": [
{
"Action": [
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage",
"ecr:BatchCheckLayerAvailability"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
可信实体选项卡显示:
The identity provider(s) autoscaling.amazonaws.com
The identity provider(s) ec2.amazonaws.com
它在模拟器中工作。
但是当我跳上该实例并尝试提取图像时,我得到没有基本的身份验证凭据:
$ docker pull 4----------7.dkr.ecr.us-west-2.amazonaws.com/gc01_data:1.0.0
Error response from daemon: Get https://4----------7.dkr.ecr.us-west-2.amazonaws.com/v2/gc01_data/manifests/1.0.0: no basic auth credentials
或者,在尝试 docker stack deploy 之后,我的 docker.log 显示相同:
Aug 29 21:05:15 moby root: time="2017-08-29T21:05:15.434428743Z" level=debug msg="Trying to pull 4----------7.dkr.ecr.us-west-2.amazonaws.com/gc01_data from https://4----------7.dkr.ecr.us-west-2.amazonaws.com v2"
Aug 29 21:05:15 moby root: time="2017-08-29T21:05:15.449145816Z" level=info msg="Attempting next endpoint for pull after error: Get https://4----------7.dkr.ecr.us-west-2.amazonaws.com/v2/gc01_data/manifests/1.0.0: no basic auth credentials"
看不到缺少什么。谢谢。
【问题讨论】:
-
我看到了那个,但这种情况下的身份验证是通过“aws ecr get-login”进行的,需要 AWS 密钥和密钥。这就是我试图避免的。我需要根据 AWS 建议基于 EC2 实例的 IAM 角色进行身份验证——AWS 凭证不应存储在实例上的文件中。
标签: amazon-web-services docker amazon-ec2 amazon-cloudformation