Amazon web services 将配置文件/url从AWS S3安全地传递给BeanStalk

Amazon web services 将配置文件/url从AWS S3安全地传递给BeanStalk,amazon-web-services,amazon-s3,amazon-elastic-beanstalk,Amazon Web Services,Amazon S3,Amazon Elastic Beanstalk,我有一个在Beanstalk中运行的tomcat实例,在Beanstalk的配置中,我将config.file作为如下参数传递: -Dconfig.url=https://s3.amazonaws.com/my-bucket/my-file.txt 这个文件在s3中,但我必须将权限设置为“Everyone”:“Open”,我不喜欢这样做,因为这是不安全的,但似乎找不到任何其他方法。我已经研究过url签名方法,但这不是一个好的解决方案,因为文件和Beanstalk应用程序都会频繁更新,我

我有一个在Beanstalk中运行的tomcat实例,在Beanstalk的配置中,我将config.file作为如下参数传递:

    -Dconfig.url=https://s3.amazonaws.com/my-bucket/my-file.txt
这个文件在s3中,但我必须将权限设置为“Everyone”:“Open”,我不喜欢这样做,因为这是不安全的,但似乎找不到任何其他方法。我已经研究过url签名方法,但这不是一个好的解决方案,因为文件和Beanstalk应用程序都会频繁更新,我希望所有这些都是自动化的,即,如果应用程序中断并重新启动,它将无法读取文件,因为签名密钥已过期

我已经看过了文档中的角色,但似乎无法实现这一点。我已经向aws-elasticbeanstalk-ec2-role(如下所示)添加了一个自定义策略,但这并没有起任何作用-我的应用程序仍然无法访问存储桶中的文件。有人能告诉我如何/是否能解决这个问题吗

    {
    "Version": "2012-10-17",
    "Statement": [
            {
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::my-bucket-name/*"
            }
            ]
    }

是否有其他方法允许Beanstalk应用程序读取S3存储桶中的文件?非常感谢您的帮助。

s3 bucket和Elastic Beanstalk用户是否在同一个帐户中?还有,你得到的确切错误是什么?(请随意删除id信息)解决方法可能是将文件复制到本地目录,然后在启动命令中引用本地文件。大概是这样的: