【以下的问题经过翻译处理】 这个Bucket授予特定来源IP的GET请求权限。
{
"Version": "2012-10-17",
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "IPAllow",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "BUCKETNAME/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": "8.8.8.8"
}
}
}
]
}
如果Bucket是这样设置的:
那么,如果请求来自指定的IP之外:
然而,如果托管类型更改为“重定向对象的请求”,那么来自未经授权的IP的请求会导致:
重定向的目标无关紧要,我在测试中使用了google.com。如果将其设置为重定向到与Bucket URL不同的域名,则网站端点会忽略策略未授予GET权限的事实,并响应301重定向。
curl -v http://BUCKETNAME.s3-website-us-east-1.amazonaws.com
* Trying 52.217.100.51:80...
* Connected to BUCKETNAME.s3-website-us-east-1.amazonaws.com (52.217.100.51) port 80 (#0)
> GET / HTTP/1.1
> Host: BUCKETNAME.s3-website-us-east-1.amazonaws.com
> User-Agent: curl/7.85.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 301 Moved Permanently
< x-amz-id-2: sqsvHiKbD...
< x-amz-request-id: TNTFX...
< Date: Thu, 20 Apr 2023 19:59:25 GMT
< Location: http://google.com/
< Server: AmazonS3
< Content-Length: 0
<
* Connection #0 to host BUCKETNAME.s3-website-us-east-1.amazonaws.com left intact
*
问题是策略是否还应阻止未经授权IP的网站端点的GET请求,因为目前它只会阻止对API端点的请求。