我创建了一个Amazon S3存储桶,我希望提供对所有公司用户的访问权限,这意味着任何人都可以访问S3存储桶并下载对象。
我已经为IP限制编写了一个Bucket Policy:
{
"Version": "2012-10-17",
"Id": "S3PolicyIPRestrict",
"Statement": [
{
"Sid": "IPAllow",
"Effect": "Allow",
"Principal": "",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucket/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"10.0.8.10"
]
}
}
}
]
}
当我为每个人添加ACL权限时,#34;阅读"然后只有我能够访问该对象。但是存储策略不适用。任何人都可以从网络外部访问。我做错了什么?
答案 0 :(得分:0)
您的存储分区策略授予源{IP地址10.0.8.10
的权限。这是一个私人IP地址。
但是,Amazon S3是一种坐在互联网上的公共服务。访问Amazon S3时,请求通过Internet(或至少访问Internet的AWS边缘),您的请求似乎来自公共IP地址。因此,该政策不允许访问,因为您的地址与政策中的地址不匹配。
您应该更改策略以使用公司流量访问Internet时使用的公共IP地址。您可以通过http://checkip.amazonaws.com
发现此地址。
此外,如果您通过Bucket Policy授予访问权限,则不通过ACL授予访问权限。