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

Joe*_*uer 5 ruby-on-rails amazon-s3 paperclip amazon-web-services

我有一个在 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'),
   }
 }
Run Code Online (Sandbox Code Playgroud)

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

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

关于如何找出我遗漏的任何见解?

Joe*_*uer 1

我没有确定如何调试这个问题,但是,我确实找到了解决方案。

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

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

我一步一步地遵循了这个指南,它让我开始并运行。