2013-05-14 138 views
1

我们已经在S3上获得了一堆我们想要安全服务的静态资产。在EC2服务器上为S3服务

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

我发现这一点:http://www.cyberkan.com/how-to-mount-s3-over-ec2-linux/展示了如何安装S3为卷。

任何人都试图通过s3fs通过Apache或EC2上的nginx服务S3存储桶?这在性能和可靠性方面是否可行?

回答

0

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

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

-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/*" 
      ] 
     } 
     } 
    } 
    ] 
} 

注意:这个例子是从the S3 documentation

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

+0

HTTP REFERER标题由用户的浏览器发送。这是微不足道的恶搞。这种方法并不安全。 – GuiSim