这是我的政策:
{
"Version": "2012-10-17",
"Id": "Policy3451901640290",
"Statement": [
{
"Sid": "Stmt3451901619319",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket1/*"
}
]
}
这是我的 cors :
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<ExposeHeader>ETag</ExposeHeader>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
我的存储桶中的所有文件必须是可供所有人阅读的,但只能通过我的网站查看,是否有一种简单的方法可以拒绝直接访问S3?
更新
我尝试将此添加到我的政策中:
"Condition":{
"StringLike":{"aws:Referer":["http://www.example.com/*","http://example.com/*"]}
}
无论如何,我可以直接通过S3访问我网站之外的所有文件,而不是像这样:
假设我的文件夹上有这个文件:
https://s3-eu-west-1.amazonaws.com/bucket1/example.jpg
如果用户现在转到该链接,他/她可以看到该图像。相反,我希望只能从我的网站访问。
让我们说example.com
我有这个:
<img src="https://s3-eu-west-1.amazonaws.com/bucket1/example.jpg" />