3

我在 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编辑的方式?

4

1 回答 1

8

有多种方法可以做到这一点。

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

我更喜欢使用 aws iam 角色

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

  • 手动创建 iam 角色或使用 terraform iam resource
  • 有关 iam 政策的内容,请参阅
  • 使用 terraform实例资源的 ec2使用iam_instance_profile属性时,该属性的值应该是您创建的 iam 角色的名称。

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

希望这可以帮助。

于 2019-07-10T09:11:14.700 回答