【发布时间】:2017-06-06 06:23:35
【问题描述】:
我有一个托管在 S3 上的静态网站,我已将所有文件设置为公开。 另外,我有一个带有 nginx 的 EC2 实例,它充当反向代理,可以访问静态网站,所以 S3 扮演了源站的角色。
我现在想做的是将 S3 上的所有文件设置为私有文件,以便网站只能通过来自 nginx (EC2) 的流量访问。
到目前为止,我已经尝试了以下方法。我已经使用
创建了一个新的策略角色并将其附加到 EC2 实例授予权限的策略:AmazonS3ReadOnlyAccess
并且已经重启了 EC2 实例。
然后我在我的 S3 存储桶控制台 > 权限 > 存储桶策略中创建了一个策略
{
"Version": "xxxxx",
"Id": "xxxxxxx",
"Statement": [
{
"Sid": "xxxxxxx",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::XXXXXXXXXX:role/MyROLE"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::XXX-bucket/*"
}
]
}
作为委托人,我设置了在为 EC2 实例创建角色时获得的 ARN。
"Principal": {
"AWS": "arn:aws:iam::XXXXXXXXXX:role/MyROLE"
},
但是,这不起作用,感谢任何帮助。
【问题讨论】:
标签: amazon-web-services amazon-s3 amazon-ec2