Tag: amazon iam

为Amazon S3编写IAM策略和CORS配置

我对这一切都很陌生,但已经能够在我的Rails应用程序中使用头像/图像上传器。 用户可以将新的化身上传到我的S3桶,并且化身显示在Web应用程序中。 为此,我不得不向用户授予“AmazonS3FullAccess”政策。 这看起来有点太多了,因为来自应用程序的用户只需要写入(上传他的头像)并阅读(在网页上显示头像)权限。 您是否同意编写自定义策略而不是使用AmazonS3FullAccess更好? 如果是这样,我已经尝试了下面的政策代码(从这里采用),但这不起作用(尝试上传头像图像时出现403 Forbidden错误)。 有任何建议如何更正此代码? { “Version”: “2012-10-17”, “Statement”: [ { “Effect”: “Allow”, “Action”: [“s3:ListBucket”], “Resource”: [“arn:aws:s3:::mybucket”] }, { “Effect”: “Allow”, “Action”: [ “s3:PutObject”, “s3:GetObject”, “s3:DeleteObject” ], “Resource”: [“arn:aws:s3:::mybucket/*”] } ] }

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

在Michael Hartl的The Rails Tutorial的第11章末尾,我成功地设法通过创建存储桶,使用IAM设置用户并授予用户AmazonS3FullAccess策略来启用用户上传到Amazons S3服务。 让我的网站上的未知用户可以完全访问我的网站上的图像上传桶并且我不确定我是否应该这样感觉,这感觉很脏并且非常不安全。 我创建了一个自定义策略 http://awspolicygen.s3.amazonaws.com/policygen.html 以下是: { “版本”:“2012-10-17”, “声明”:[ { “Sid”:“Stmt1445501067518”, “行动”:[ “S3:GetObject的”, “S3:PutObject” ] “效果”:“允许”, “资源”:“arn:aws:s3 ::: bucketname” } ] } 我对我的解决方案没有信心,也无法找到任何答案谷歌搜索最佳方式。 我正在使用carrierwave(有意使用carrierwave_direct用于我自己的项目),雾和mini_magickgem。

使用Paperclip和IAM策略将文件上载到Amazon时拒绝访问

我无法使用S3 IAM策略使用Paperclip上传。 我甚至遇到直接jQuery上传的问题(没有Paperclip)。 我的方案如下,我有一个应用程序,将有许多网站。 每个站点都有自己的桶,应该只能访问自己的桶,没有其他人的桶。 IAM示例策略文档在“示例:允许每个IAM用户访问存储桶中的文件夹”下准确说明了我想要执行的操作。 我为应用程序设置了一个IAM组,并且该组中每个站点都有一个用户。 这些IAM用户属于该组。 该小组的政策如下: { “Version”:”2012-10-17″, “Statement”:[{ “Effect”:”Allow”, “Action”:[ “s3:PutObject”, “s3:GetObject”, “s3:GetObjectVersion”, “s3:DeleteObject”, “s3:DeleteObjectVersion” ], “Resource”:”arn:aws:s3:::my-app/${aws:username}/*” } ] } 这是我在存储桶上的CORS配置,当然开发时它会被锁定: * GET POST PUT * 这是我的Paperclip设置: has_attached_file :background_image, storage: :s3, s3_credentials: { access_key_id: “xxx”, secret_access_key: “xxx” }, bucket: “my-app”, s3_permissions: “public-read”, path: “/background_images/:id/:filename” 我以前一直在使用直接在策略上的策略,它确实有效,但是当我进入具有许多“站点”的生产环境时,它不像我需要的那样灵活。 据我所知,我已完全遵循文档,但我所做的任何事情都会导致“访问被拒绝”。 此时我甚至不确定我的问题是我的IAM策略还是我的Paperclip配置。 编辑:澄清。 编辑2:最终解决方案 以下是基于本文的最终IAM策略: { […]

如何为Hartl的rails教程授予AWS用户权限

我不知道如何(或在何处)从AWS授予用户读写权限,以便用户可以在生产环境中的sample_app上发布图片。 这是第11章的最后一项任务,它没有被教程所涵盖,我无法在任何地方找到解决方案。 这是carrier_wave.rb文件: if Rails.env.production? CarrierWave.configure do |config| config.fog_credentials = { # Configuration for Amazon S3 :provider => ‘AWS’, :aws_access_key_id => ENV[‘lalala’], :aws_secret_access_key => ENV[‘oloalle’] } config.fog_directory = ENV[‘name of bucket’] end end 这是教程中的过程:1)创建AWS IAM用户并记录访问权限和密钥 – 完成 2)创建S3桶 – 完成 3) 授予对上一步创建的用户的读写权限 – 如何??? 4)然后我运行这三个命令: $ heroku config:set S3_ACCESS_KEY=lalala $ heroku config:set S3_SECRET_KEY=oloalle $ heroku […]