1

我们希望在 S3 上安全地提供大量静态资产。

由于我们不能使用自定义域名和 SSL 证书,并且希望与我们现有的身份验证解决方案集成,我们想尝试通过 EC2 上的真实网络服务器提供 S3 内容。

我发现了这个:http ://www.cyberkan.com/how-to-mount-s3-over-ec2-linux/ ,它显示了如何将 S3 挂载为卷。

有人尝试过通过 s3fs 在 Apache 或 EC2 上的 nginx 提供 S3 存储桶吗?就性能和可靠性而言,这是一个可行的策略吗?

4

2 回答 2

0

我的经历好坏参半。S3 不是块设备。许多应用程序访问文件系统,假设它是一个块设备。当您尝试访问 s3fs 挂载上的文件时,结果可能无法预测。

S3 确实有 SSL 支持,你只需要使用他们的域。您可以通过签名的 url 提供对私有文件的访问。这将在一段时间内对用户有效。

于 2013-05-14T19:51:56.000 回答
-2

您可以通过将内容保留在 S3 上来保护内容,然后在 S3 上编辑存储桶策略以仅在用户单击服务器上的链接时才允许访问您的内容。例如,如果您的内容管理系统(我假设它实现某种形式的身份验证)位于 www.example.com,那么在 S3 中,转到您的存储桶的“属性”并在“权限”区域中单击“添加存储桶策略” ”。

例如,您可以使用以下代码限制对特定 HTTP 引用者的访问:

{
  "Version":"2008-10-17",
  "Id":"http referer policy example",
  "Statement":[
    {
      "Sid":"Allow get requests originated from www.example.com and example.com",
      "Effect":"Allow",
      "Principal":"*",
      "Action":"s3:GetObject",
      "Resource":"arn:aws:s3:::examplebucket/*",
      "Condition":{
        "StringLike":{
          "aws:Referer":[
            "http://www.example.com/*",
            "http://example.com/*"
          ]
        }
      }
    }
  ]
}

注意:此示例来自S3 文档

我已经成功地使用了这种方法。即使有人查看页面源并尝试直接访问 S3 存储桶源,他们也会收到“拒绝访问”。只有当他们通过 www.example.com 的身份验证并单击链接以从该经过身份验证的浏览器会话中查看或下载您的内容时,才能访问这些文件。

于 2013-05-18T00:13:59.123 回答