【问题标题】:"No basic auth credentials" using IAM role on EC2 instance在 EC2 实例上使用 IAM 角色“无基本身份验证凭证”
【发布时间】: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


【解决方案1】:

好的,我应该说这是一个 Docker-4-AWS Swarm 实例,所以这是一个已知问题:https://github.com/docker/for-aws/issues/5

作为权宜之计,我正在使用@blaketastic 的方式来使用 swarm 的 guide-aws

docker exec -it guide-aws sh -c 'aws ecr get-login --region us-east-1 --no-include-email'

这是一种无需在实例上使用/存储 AWS 凭证即可访问 ecr 的方法。

【讨论】:

  • 得到Error: No such container: guide-aws,当尝试通过docker pull guide-aws 提取图像时,我得到Error response from daemon: repository guide-aws not found: does not exist or no pull access,知道吗?
猜你喜欢
  • 2018-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-10
  • 2015-02-14
  • 2018-02-06
  • 2017-05-21
  • 2021-05-28
相关资源
最近更新 更多