1. ホーム
  2. amazon-web-services

[解決済み] Amazon S3バケットが403 Forbiddenを返す

2022-02-15 13:17:41

質問

最近、アセットの保存に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/*"
    }
 ]
}

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>

静的ウェブホスティング

有効である。

これらのアセットに一般の人がアクセスできるようにするには、他にどうしたらよいですか?

解決方法は?

に従って転送されたことが問題です。 このスレッド それ自体は問題ではありません。問題は、前の開発者が転送前にファイルのパーミッションを変更しなかったことにあります。そのため、私のバケツに入っているにもかかわらず、どのファイルも管理することができませんでした。

以前のバケットからファイルをきれいに再ダウンロードし、古いファントム・ファイルを削除し、新しいファイルを再アップロードし、ファイルの公開読出しを許可するようにパーミッションを設定することで問題は解決されました。