"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
如何以最安全的方式提供这些凭据,并且还可以 terraform
ed?
有多种方法可以做到。
使用 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 角色。
- 手动或使用 terraform 创建 iam 角色 iam resource。
- 关于iam政策的内容,请参考this。
- 使用 terraform instance resource make use of iam_instance_profile 属性引入 ec2 时,此属性的值应为您创建的 iam 角色的名称。
这应该足以以安全的方式从 ECR 中自动提取 docker 图像。
希望这对您有所帮助。
我的 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
如何以最安全的方式提供这些凭据,并且还可以 terraform
ed?
有多种方法可以做到。
使用 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 角色。
- 手动或使用 terraform 创建 iam 角色 iam resource。
- 关于iam政策的内容,请参考this。
- 使用 terraform instance resource make use of iam_instance_profile 属性引入 ec2 时,此属性的值应为您创建的 iam 角色的名称。
这应该足以以安全的方式从 ECR 中自动提取 docker 图像。
希望这对您有所帮助。