1

我的EC2實例無法使用IAM角色進行身份驗證。該實例在AWS控制檯中顯示了正確的角色:IAM role: Docker-WorkerRole-DPET4SO6HV87。點擊該按鈕可打開角色控制檯,我可以看到列出的正確策略:'ecr-pull-image'。上的點擊顯示以下權限:在EC2實例上使用IAM角色的「沒有基本身份驗證憑據」

{ 
    "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.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" 

看不到缺少的東西。謝謝。

+0

可能的重複[無法將圖像推送到Amazon ECR - 失敗並顯示「沒有基本身份驗證憑據」](https://stackoverflow.com/questions/34689445/cant-push-image-to-amazon-ecr- fail-with-no-basic-auth-credentials) – helloV

+1

我看到了一個,但這種情況下的身份驗證是通過「aws ecr get-login」,需要AWS密鑰和祕密。這就是我想要避免的。根據AWS建議,我需要基於EC2實例的IAM角色進行身份驗證 - AWS證書不應存儲在實例的文件中。 – HieroB

回答

0

好吧,我應該說這是一個Docker-4-AWS Swarm實例,所以這是一個已知問題:https://github.com/docker/for-aws/issues/5

由於我使用的的@ blaketastic的方式治標蜂擁而上的導AWS

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

這是不使用/存儲上的實例AWS憑據訪問ECR的方式。

+0

得到'錯誤:沒有這樣的容器:guide-aws',當試圖通過'docker pull guide-aws'拉我的圖像時,我得到了'來自守護進程的錯誤響應:存儲庫指南 - aws找不到:不存在或不存在拉訪問,任何想法? –

相關問題