授予对Elastic Beanstalk实例的S3访问权限

jam*_*oks 8 amazon-s3 amazon-elastic-beanstalk

我正在尝试使用来自私有S3存储桶的一些ssh密钥在Elastic Beanstalk中配置我的EC2实例.这是我的.ebextensions/.config的片段:

files:
  "/root/.ssh/id_rsa" :
    mode: "000400"
    ownder: root
    group: root
    source: https://s3-us-west-2.amazonaws.com/<bucket>/<app>_id_rsa
Run Code Online (Sandbox Code Playgroud)

不幸的是,我收到了S3的403响应.有没有办法使用安全组授予对EC2实例的访问权限?我无法单独授予每个实例访问权限,因为在缩放之前我不会知道它们的IP.是否有其他方法可以授予此Elastic Beanstalk应用程序访问权限?我无法想出一个好的S3 Bucket Policy ...

stu*_*udy 13

您可以为S3访问设置IAM角色,并将IAM角色分配给EC2.

适用于Amazon EC2的IAM角色

  • 我也被这个问题的其他几个贡献所误导,即试图破解"桶政策".事实证明,你必须将`AmazonS3FullAccess`政策添加到`aws-elasticbeanstalk-ec2-role` (7认同)
  • 只是为了增加一些额外的清晰度:"aws-elasticbeanstalk-ec2-role"应该有一个IAM角色,您可以在IAM角色Web控制台中为您的s3存储桶访问附加新策略.话虽这么说,我发现为不同环境创建新角色更为谨慎. (4认同)
  • @tom 正是我需要的 (2认同)