amazon-web-services - "No basic auth credentials"在 EC2 实例上使用 IAM 角色

标签 amazon-web-services docker amazon-ec2 aws-cloudformation

我的 EC2 实例无法使用 IAM 角色进行身份验证。该实例在 AWS 控制台中显示正确的角色:IAM 角色: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部署后,我的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"  

看不到缺少什么。谢谢。

最佳答案

好吧,我应该说这是一个 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'

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

关于amazon-web-services - "No basic auth credentials"在 EC2 实例上使用 IAM 角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45948814/

相关文章:

php - 使用多个嵌套 JSON 键进行 DynamoDB 扫描 (PHP)

docker - 如何配置 docker 使用/opt 而不是/var

php - 如何为官方 nginx Docker 镜像使用自定义 Nginx 配置?

amazon-web-services - 是否可以从 AWS EC2 实例设置本地 Kubernetes 开发环境(Minikube 等)?

amazon-ec2 - 在多个可用区运行 ELB 是否成本更高?

amazon-web-services - AWS-尝试在EC2实例上为Elasticsearch安装kopf插件

database - Amazon DynamoDB 以字符串形式获取项目

amazon-web-services - 如果不使用 ELB,如何与 AWS ECS Fargate 上的应用程序通信?

php - 如何将 Azure AD 集成到使用 AWS Cognito 实现 SSO 的应用程序中?

docker - 创建新的Docker镜像与运行Shell命令