amazon-web-services - Amazon S3 存储桶返回 403 Forbidden

标签 amazon-web-services amazon-s3

我最近继承了一个使用 S3 来存储资源的 Rails 应用程序。我已将所有 Assets 转移到我的 S3 存储桶,没有任何问题。但是,当我更改应用程序以指向新存储桶时,我收到 403 禁止状态。

我的 S3 存储桶已设置为以下设置:

权限

每个人都可以列出

存储桶策略

{
 "Version": "2012-10-17",
 "Statement": [
    {
        "Sid": "PublicReadGetObject",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::bucketname/*"
    }
 ]
}

CORS配置

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
    </CORSRule>
    <CORSRule>
        <AllowedOrigin>https://www.appdomain.com</AllowedOrigin>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>DELETE</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

静态虚拟主机

已启用。

我还能做些什么来让公众获得这些 Assets ?

最佳答案

我知道这是一个旧线程,但我刚刚遇到了同样的问题。我一切都正常工作了几个月,但它突然停止工作,给我一个 403 Forbidden 错误。事实证明系统时钟才是真正的罪魁祸首。我认为 s3 使用某种基于时间的 token ,其生命周期非常短。就我而言,我只是跑了:

ntpdate pool.ntp.org

然后问题就消失了。我正在运行 CentOS 6(如果有任何相关的话)。这是示例输出:

19 Aug 20:57:15 ntpdate[63275]: step time server ip_address offset 438.080758 sec

希望有帮助!

关于amazon-web-services - Amazon S3 存储桶返回 403 Forbidden,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26691286/

相关文章:

amazon-web-services - AWS S3 重定向规则不允许我保存它

amazon-web-services - AWS CodePipeline 可以使用 aws-cli 等标签进行部署吗?

sql-server - 自动将 RDS 备份 SQL Server 到 S3

amazon-web-services - 将数据附加到 S3 对象

ruby - 当文件大小大于 X 时 Rmagick 压缩而不写入(上传到 S3)

Android AWS S3 库 - 同步上传

amazon-web-services - 在Amazon S3存储桶中完成上传后获得通知

java - AWSCognitoIdentityProvider.adminCreateUser(...) 无法满足约束 : Member must not be null

python - 在 Elastic Beanstalk (Libffi) 中安装软件包

sql-server - 如何在 S3 中查询异构 JSON 数据?