场景:我在同一个帐户下有一个EC2实例和一个S3存储桶,我EC2上的Web应用程序想要访问该存储桶中的资源 .
在官方文档之后,我使用 s3access
创建了一个IAM角色并将其分配给EC2实例 . 据我了解,现在我的网络应用程序应该能够访问存储桶 . 但是,经过试验,似乎我必须添加一个像这样的 allowPublicRead
桶策略:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowPublicRead",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucket/*"
}
]
}
否则我禁止进入 .
但是为什么我应该使用这个 allowPublicRead
存储桶策略,因为我已经为EC2实例授予了 s3access
IAM角色?
1 回答
S3
s3:GetObject
只允许访问ec2实例中的对象,你想要的是从web-app访问这些对象,这意味着从你的浏览器,在这种情况下,这些图像/对象将呈现给用户浏览器,如果它是公共的面对应用程序,您还需要分配AllowPublicRead
权限 .