tha*_*guy 46 amazon-s3 amazon-web-services
我最近继承了一个使用S3存储资产的Rails应用程序.我已将所有资产转移到我的S3存储桶,没有任何问题.但是,当我将应用程序更改为指向新存储桶时,我获得403 Forbidden Status.
我的S3存储桶设置了以下设置:
权限
每个人都可以列出
存储策略
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucketname/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
静态虚拟主机
启用.
我还能做些什么来让公众获得这些资产?
Sth*_*the 28
我知道这是一个旧线程,但我刚遇到同样的问题.我让一切都工作了几个月,它突然停止工作,给我一个403 Forbidden错误.事实证明,系统时钟是真正的罪魁祸首.我认为s3使用某种基于时间的令牌,它具有非常短的寿命.在我的情况下,我刚刚跑了:
ntpdate pool.ntp.org
Run Code Online (Sandbox Code Playgroud)
问题就消失了.我正在跑,CentOS 6如果它有任何相关性.这是示例输出:
19 Aug 20:57:15 ntpdate[63275]: step time server ip_address offset 438.080758 sec
Run Code Online (Sandbox Code Playgroud)
希望有所帮助!
小智 12
也可能需要根据亚马逊文档设置适当的政策.
http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html
对这个政策提出质疑
{
"Version":"2012-10-17",
"Statement":[{
"Sid":"PublicReadGetObject",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::YOUR-BUCKET-NAME/*"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
小智 11
我遇到了同样的问题,只是在策略桶资源的末尾添加 * 解决了它
{
"Version":"2012-10-17",
"Statement":[{
"Sid":"PublicReadGetObject",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::example-bucket/*"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
73395 次 |
| 最近记录: |