"no basic auth credentials" 尝试从私有 ECR 中提取图像时

"no basic auth credentials" when trying to pull an image from a private ECR

我的 Dockerfile 中间某处有以下行,用于从我的私有 ECR 中检索图像。

FROM **********.dkr.ecr.ap-southeast-1.amazonaws.com/prod/*************:ff03401

这是我在尝试构建时在 AWS Codebuild 中遇到的错误:

Step 21/36 : FROM **********.dkr.ecr.ap-southeast-1.amazonaws.com/prod/*************:ff03401 Get https://**********.dkr.ecr.ap-southeast-1.amazonaws.com/prod/*************/manifests/ff03401: no basic auth credentials

如何以最安全的方式提供这些凭据,并且还可以 terraformed?

有多种方法可以做到。

使用 aws 访问和密钥。在其中设置 ec2 机器上的 aws 凭据和 运行 ecr 登录命令。 aws ecr get-login --no-include-email --registry-ids <some-id> --region eu-west-1 然后 docker pull 应该工作。但这不是推荐的安全方式。

我更喜欢使用 aws iam roles

假设您想在使用 terraform 启动的 ec2 机器上拉取此映像。使用 iam 角色。

这应该足以以安全的方式从 ECR 中自动提取 docker 图像。

希望这对您有所帮助。