在 Elastic Beanstalk 上的 docker 中的 cron 作业中访问 S3
Posted
技术标签:
【中文标题】在 Elastic Beanstalk 上的 docker 中的 cron 作业中访问 S3【英文标题】:Access S3 in cron job in docker on Elastic Beanstalk 【发布时间】:2016-10-01 16:52:53 【问题描述】:我在部署到弹性 beanstalk 的 docker 映像中有一个 cron 作业。在该工作中,我希望在 S3 上包含读写操作,并为此目的包含了 AWS CLI 工具。
但如果没有凭证,AWS CLI 就不是很有用。如何在 Docker 映像中安全地包含 AWS 凭证,以使 AWS CLI 能够正常工作?还是我应该采取其他方法?
【问题讨论】:
【参考方案1】:如果机器在 AWS 中运行,请始终尽量避免在机器上设置凭据。
执行以下操作:
进入 IAM 控制台并创建一个 IAM 角色,然后编辑该角色的策略以获得适当的 S3 读/写权限。 然后转到 Elastic Beanstalk 控制台,找到您的环境并转到配置/实例部分。设置“实例配置文件”以使用您创建的角色(配置文件与角色关联,您可以在查看角色时在 IAM 控制台中看到它)。这意味着每个 beanstalk EC2 实例都将拥有您在 IAM 角色中设置的权限(如果可用,AWS CLI 将自动使用当前机器的实例配置文件)。
更多信息:
http://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html#use-roles http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html【讨论】:
以上是关于在 Elastic Beanstalk 上的 docker 中的 cron 作业中访问 S3的主要内容,如果未能解决你的问题,请参考以下文章
AWS Elastic Beanstalk 上的 Spring Boot 并记录到文件
无法连接到 Elastic Beanstalk 上的 ActionCable
Elastic Beanstalk 上的 Docker + Django