如何解决Heroku的AWS::S3::Errors::Access Denied错误?

0

【以下的问题经过翻译处理】 你好,我按下面的链接配置了AWS S3的paperclip,但是在heroku日志里一直报错“AWS::S3::ERRORS::AccessDenied (Access Denied):”。如果我取消阻止公共访问设置,则可以成功上传图像到我的S3文件夹。

请问我是否需要进行其他配置才能使其正常工作?我的ENV文件是100%正确的,因为当我取消阻止所有公共访问时,它们能够连接。

我目前有一个桶策略和没有CORS配置的设置。

profile picture
专家
已提问 6 个月前42 查看次数
1 回答
0

【以下的回答经过翻译处理】 你好,安迪,

根据你的描述,S3策略似乎工作正常。为了确认,我建议使用你尝试使用的用户测试策略。只需转到IAM ->(在主仪表板中)屏幕右侧单击“策略模拟器” -> 选择你尝试使用的用户-> 选择你要使用此用户执行的S3存储桶操作。

关于paperclip配置(例如/config/environments/production.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')
    }
}

profile picture
专家
已回答 6 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则