在 Elastic Beanstalk 上 docker 的 cron 作业中访问 S3

Access S3 in cron job in docker on Elastic Beanstalk

我在部署到 Elastic Beanstalk 的 docker 映像中有一个 cron 作业。在那份工作中,我希望包括对 S3 的读写操作,并为此目的包括了 AWS CLI 工具。

但是如果没有凭据,AWS CLI 就不是很有用。我如何才能安全地将 AWS 凭证包含在 Docker 图像中,以便 AWS CLI 正常工作?或者我应该采取其他方法吗?

始终尽量避免在 运行 AWS 中的计算机上设置凭据。

执行以下操作:

  • 进入 IAM 控制台并创建一个 IAM 角色,然后编辑该角色的策略以获得适当的 S3 read/write 权限。
  • 然后转到 Elastic Beanstalk 控制台,找到您的环境并转到 configuration/instances 部分。设置 "instance profile" 以使用您创建的角色(配置文件与角色相关联,您可以在查看角色时在 IAM 控制台中看到它)。

这意味着每个 beantalk EC2 实例都将拥有您在 IAM 角色中设置的权限(如果可用,AWS CLI 将自动使用当前机器的实例配置文件)。

更多信息: