我创建了一个Amazon S3 Bucket,用于存储我的网站上的图像。我有超过100万张图片,都具有公共读取权限。每次我登录时,Amazon都会给我这个警告:
"此Bucket具有公共访问权限 您已为此Bucket提供了公共访问权限。我们强烈建议您不要向S3 Bucket授予任何形式的公共访问权限。"
我正在使用以下Bucket策略,只允许在我的网站上显示图片:
{
"Version": "2012-10-17",
"Id": "http referer policy example",
"Statement": [
{
"Sid": "Allow get requests originated from www.example.com and example.com.br",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::examplebucket.com/*",
"Condition": {
"StringLike": {
"aws:Referer": [
"http://www.example.com/*",
"http://www.example.com.br/*",
"https://www.example.com/*",
"https://www.example.com.br/*"
]
}
}
}
]
}
我该如何取消存储桶及其文件的公共访问权限,并仅将其授予我的网站?
谢谢!
public-read
,上面的策略实际上并没有起到任何作用。如果您仍想通过引用者来拒绝访问,可以创建一个Deny
策略,测试aws:referer
条件键的StringNotLikeIfExists
,但是请注意,如果您没有提供必要的匹配条件来防止此策略拒绝它们,则可能会拒绝来自控制台和其他内部机制的访问。 - Michael - sqlbot