小编dif*_*ffa的帖子

使用 IAM 角色凭证从 s3 存储桶获取文件

我正在尝试将一些文件从私有 s3 存储桶检索到文件系统位置弹性 beantalk ec2 实例,但没有成功。

我创建了一个名为的存储桶,dev-config其中包含一个名为local.properties.

我创建了一个 IAM 策略

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::dev-config",
                "arn:aws:s3:::dev-config/*"
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

并将该策略与 IAM 角色相关联,该角色又与 EC2 实例相关联。我已经确认我可以使用 aws-cli 从 s3 存储桶中获取文件,而无需提供任何额外的凭据。即 aws s3 ls s3://dev-config/local.properties

在我的项目中,我添加了以下文件:

.ebextensions/01_files.config

"/usr/share/tomcat7/lib/local.properties" :
    mode: "000777"
    owner: ec2-user
    group: ec2-user
    source: http://s3.amazonaws.com/dev-config/local.properties
Run Code Online (Sandbox Code Playgroud)

我还尝试了源网址的一些变体

    source: http://dev-config.s3.amazonaws.com/dev-config/local.properties
    source: http://dev-config.s3.amazonaws.com/local.properties
    source: s3://dev-config/local.properties
Run Code Online (Sandbox Code Playgroud)

而且我也尝试添加一个authentication属性但没有成功(似乎没有关于可能的身份验证值的文档)。身份验证:S3Access

到目前为止,这些方法都没有奏效。

在某些情况下,我会在日志中收到拒绝访问的消息:

    <?xml version="1.0" encoding="UTF-8"?>
      <Error><Code>AccessDenied</Code><Message>Access Denied</Message>
      <RequestId>blahblah</RequestId>
      <HostId>blahblah</HostId>
    </Error>
Run Code Online (Sandbox Code Playgroud)

在其他情况下,我在 local.properties 文件本身中有错误消息 …

amazon-s3 amazon-ec2 amazon-iam elastic-beanstalk

5
推荐指数
1
解决办法
5685
查看次数