AWS S3仅允许来自存储桶的映像显示在特定IP地址上
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS S3仅允许来自存储桶的映像显示在特定IP地址上相关的知识,希望对你有一定的参考价值。
我一直在使用AWS php SDK做一些工作,我已经能够将对象上传到存储桶,这是基础知识。
我使用此存储的主要目的是使用它将一组相关文件捆绑在一起,其中一个是缩略图,这些文件组显示在网站成员区域的网格中。
我不希望S3 URLS公开,但我确实希望在我的服务器IP地址上查看/下载这些文件。
我尝试过使用策略生成器,我不确定这是否是正确的方法来实现我想要实现的目标?
我应该使用S3 URL来缩略图显示在后端吗?或者我应该使用SDK的GetObject函数?
我会非常感激任何一点点的帮助,因为我目前还不确定我应该向哪个方向前进。
谢谢,凯恩
答案
您可以使用存储桶策略仅允许来自特定IP的访问,如this example所示:
{
"Version": "2012-10-17",
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "IPAllow",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::examplebucket/*",
"Condition": {
"IpAddress": {"aws:SourceIp": "54.240.143.0/24"}
}
}
]
}
确保指定服务器的公共IP,以便访问S3。在上面的示例中,54.240.143.0/24
是CIDR块而不是IP地址。如果你想过滤特定的IP(如53.22.121.12)添加/ 32掩码,如下所示:53.22.121.12/32
我个人更喜欢在权限UI中将存储桶策略编辑为JSON,但您也可以使用策略生成器。
我建议您使用GetObject将S3中的内容检索到应用程序。在这种情况下,您可以将S3存储桶仅对应用服务器而不是对公众开放。
以上是关于AWS S3仅允许来自存储桶的映像显示在特定IP地址上的主要内容,如果未能解决你的问题,请参考以下文章