适用于使用carrierwave上传图像文件的用户的s3权限

Sea*_*rko 5 ruby-on-rails amazon-s3 amazon-web-services railstutorial.org amazon-iam

在轨道教程第11章由迈克尔·哈特尔最后我成功地设法通过创建一个水桶,使用IAM设置用户和授权用户的AmazonS3FullAccess政策,使用户上传到亚马逊S3服务.感觉很脏,很没有安全感,让我的网站上未知的用户有在我的网站全面进入水桶的上传图片和我不知道我是否应该有这样的感觉.我创建了一个自定义策略

以下是:

   {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "Stmt1445501067518",
          "Action": [
            "s3:GetObject",
            "s3:PutObject"
          ],
          "Effect": "Allow",
          "Resource": "arn:aws:s3:::bucketname"
        }
      ]
   }

我对我的解决方案没有信心,也无法找到任何答案谷歌搜索最佳方式.我正在使用carrierwave(有意使用carrierwave_direct用于我自己的项目),雾和mini_magick宝石.

mic*_*zer 4

允许用户将文件上传到您的网站(即 S3)的最佳且可能是最安全的方法是使用基于浏览器的帖子上传。

这使用户可以直接上传到 S3,而无需通过您的服务器。在您的服务器上,您只需使用访问密钥创建请求签名即可。

您可以在这里阅读更多相关信息: 使用 Post 基于浏览器的上传

我自己对 Carrierwave 并不熟悉,但您可能会发现这很有用: Uploading direct to S3 in Rails