AWS EC2使用IAM角色访问S3

时间:2017-01-12 03:52:25

标签: amazon-web-services amazon-s3 amazon-ec2 amazon-iam

场景:我在同一个帐户下有一个EC2实例和一个S3存储桶,我EC2上的网络应用程序想要访问该存储桶中的资源。

在官方文档之后,我使用s3access创建了一个IAM角色,并将其分配给EC2实例。据我了解,现在我的网络应用程序应该能够访问存储桶。但是,经过试验,似乎我必须添加allowPublicRead桶策略,如下所示:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "AllowPublicRead",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::mybucket/*"
        }
    ]
}

否则我禁止访问。

但是为什么我应该使用这个allowPublicRead存储桶策略,因为我已经将s3access IAM角色授予了EC2实例?

1 个答案:

答案 0 :(得分:1)

S3 s3:GetObject只允许访问ec2实例中的对象,你想要的是从web-app访问这些对象,这意味着从你的浏览器,在这种情况下这些图像/对象将被渲染到用户浏览器,如果它是面向公众的应用程序,那么您还需要分配AllowPublicRead权限。