最近、アセットの保存に S3 を使用する Rails アプリを継承しました。すべてのアセットを問題なく S3 バケットに転送しました。ただし、新しいバケットを指すようにアプリを変更すると、403 Forbidden ステータスが表示されます。
私の 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>
静的ウェブホスティング
有効です。
これらの資産を一般の人々が利用できるようにするために、他に何ができるでしょうか?
ベストアンサー1
これは古いスレッドだとはわかっていますが、私も同じ問題に遭遇しました。何ヶ月もすべて正常に動作していたのに、突然403 Forbidden
エラーが発生して動作しなくなりました。システム クロックが本当の原因であることがわかりました。s3 は、非常に短い有効期間を持つ何らかの時間ベースのトークンを使用していると思います。私の場合は、次のように実行しました。
ntpdate pool.ntp.org
そして問題は解決しました。CentOS 6
関連性があれば実行します。サンプル出力は次のとおりです。
19 Aug 20:57:15 ntpdate[63275]: step time server ip_address offset 438.080758 sec
助けになれば幸いです!