我在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
来提供这些凭据?
答案 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角色。
这应该足以以安全的方式自动从ECR中提取docker映像。
希望这会有所帮助。