ボクココ

個人開発に関するテックブログ

Amazon S3 でバケット配下を全て public read にする

Amazon S3 において、デフォルトではアップロードしたファイルや画像を部外者がそのままURL叩くと、Access Denied になって取得することはできない。

これに対応するためにはいくつか方法がある。

  1. S3 Console 上で対象フォルダ or ファイルを右クリック -> Make Public
  2. アップロードのコードで、AccessControl を public read に設定
  3. Bucket Policy を変更

個々のファイルごとに設定を変えたい場合は、1か2をする必要があるが、まとめて全部公開したい場合は3が有効。

Bucket の Property の Permisson にて、add bucket policyを選択。そこに

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

で適用。これで指定Bucketが全てpublic readになる。