我的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"
看不到缺少的東西。謝謝。
可能的重複[無法將圖像推送到Amazon ECR - 失敗並顯示「沒有基本身份驗證憑據」](https://stackoverflow.com/questions/34689445/cant-push-image-to-amazon-ecr- fail-with-no-basic-auth-credentials) – helloV
我看到了一個,但這種情況下的身份驗證是通過「aws ecr get-login」,需要AWS密鑰和祕密。這就是我想要避免的。根據AWS建議,我需要基於EC2實例的IAM角色進行身份驗證 - AWS證書不應存儲在實例的文件中。 – HieroB