我有一个网站,用户可以在其中上传图像或pdf等文件,并将它们存储在AWS S3中。它工作正常,但是我将“公共策略”进行了如下测试:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::mybucket/*"
]
}
]
}
它有效,但我认为malicius用户可能会提出很多要求,而亚马逊会为此收费。那么,限制访问但继续与我的Webapp一起正常工作的方式是什么?
谢谢。
答案 0 :(得分:0)
您可以为这些对象创建一个有时间限制的Amazon S3 pre-signed URL。这样可以在有限的时间内授予对私有对象的访问权限。
答案 1 :(得分:0)
您可以通过修改存储桶策略来限制对特定HTTP引荐来源网址的访问。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::mybucket/*"
],
"Condition": {
"StringLike": {
"aws:Referer": [
"http://www.example.com/*",
"http://example.com/*"
]
}
}
}
]
}
用您的网站名称替换example.com。这使得只能从以您的域名为起点的域名中访问对象。确保您使用的浏览器在请求中包含http Referer标头。有关更多详细信息,请参见Restricting Access to a Specific HTTP Referrer