如何将 AWS S3 中的工件注入到 Docker 镜像中?

Luk*_*hin 5 amazon-s3 amazon-web-services docker

我需要准备带有嵌入式 Jar 文件的 Docker 映像,以将其推送到 ECR 中。Jar 文件存储在 S3 存储桶中。如何在不将 AWS 访问密钥显式存储到图像中的情况下将 jar 注入图像内?也许我可以使用 AWS CLI 或以其他方式存在?另外,不建议在执行期间向我的 s3 存储桶添加公共访问权限并通过 env 变量设置访问密钥docker run

saa*_*ada 4

您可以定义 AWS IAM 角色并将其附加到 EC2 实例。因此,任何需要运行此docker build命令的实例只要附加了 IAM 角色就可以执行此操作。您可以从 AWS 控制台执行此操作。这解决了您将 AWS 凭证放在实例本身上的问题。

您仍然需要在 Dockerfile 中安装 aws cli。附加 IAM 角色后,您无需担心凭据。

推荐文档:

Amazon EC2 的 IAM 角色

这是有关如何执行此操作的官方博客文章教程:

使用 AWS CLI 将 AWS IAM 角色附加到现有 Amazon EC2 实例

只需确保您在 IAM 角色中指定您希望这些实例有权访问哪些 S3 存储桶。