尝试从专用ECR提取图像时“没有基本身份验证凭据”

时间:2019-07-10 08:56:28

标签: amazon-web-services docker dockerfile aws-ecr

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

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

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

  

第21/36步:从**********。dkr.ecr.ap-southeast-1.amazonaws.com/prod/*****************: ff03401   获取https://**********.dkr.ecr.ap-southeast-1.amazonaws.com/prod/*************/manifests/ff03401:没有基本的身份验证凭据

如何才能以最安全的方式提供这些凭据,并且也可以terraform来提供这些凭据?

1 个答案:

答案 0 :(得分:4)

有多种方法可以实现。

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

我更喜欢使用AWS iam roles

假设您要将此图像拉到使用terraform生成的ec2机器上。利用IAM角色。

  • 手动或使用terraform iam resource创建一个iam角色。
  • 有关iam政策的内容,请参见this
  • 在使用terraform instance resource使用ec {2}属性时,此属性的值应为您创建的iam角色的名称。

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

希望这会有所帮助。