如何调试AWS S3“访问被拒绝”

时间:2018-12-11 21:53:38

标签: ruby-on-rails amazon-web-services amazon-s3 paperclip

我在Heroku上托管了一个带有Paperclip的Rails应用程序(尽管我现在仅在本地进行测试)

我创建了一个存储桶和一个直接附加了AmazonS3FullAccess策略的用户。

我在开发.rb中有以下内容

  config.paperclip_defaults = {
   storage: :s3,
   s3_credentials: {
    bucket: ENV.fetch('S3_BUCKET_NAME'),
    access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'),
    secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'),
    s3_region: ENV.fetch('AWS_REGION'),
   }
 }

但是,当我尝试将个人档案图片附加到我的模型时,我得到了: Aws::S3::Errors::AccessDenied (Access Denied):

我该如何调试此问题?我已经删除并重新创建了IAM用户和存储桶,但是我无法弄清楚哪里出了问题。

对如何弄清楚我所缺少的东西有何见解?

1 个答案:

答案 0 :(得分:0)

我不确定如何调试此问题,但是,我确实找到了解决方案。

首先,我切换到gem 'aws-sdk-s3'而不是要求整个aws-sdk

我意识到我需要为我的存储桶创建一个策略,特别是允许用户完全访问。似乎仅向用户添加AmazonS3FullAccess是不够的。

我一步一步地遵循了this guide,它使我开始运转。