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地址上的主要内容,如果未能解决你的问题,请参考以下文章

私有登台S3存储桶的策略

仅允许从 S3 存储桶的特定文件夹中删除的 IAM 策略

AWS仅允许来自S3的EC2流量

没有 S3 存储桶的 AWS Cloudfront CORS 标头

创建单个 IAM 用户以仅访问特定的 S3 存储桶

如何将驻留在账户 A 中的 s3 存储桶的访问权限授予来自多个 aws 账户的不同 iam 用户?