0
0

Railsで画像アップロードするときのS3バケットの設定

Posted at

はじめに

Railsで画像アップロードするときのS3バケットの設定方法を紹介します。
必要最低限の権限だけ付与するようにしようと思います。

RailsからAWSへアクセスするためにはアプリケーション用のIAMユーザーを作成して、アクセスキーとシークレットアクセスキーを使います。

作成したIAMユーザーにS3へのアクセス権をつけることでRailsからS3へアクセスできます。

環境

Rails 6.1.6
ruby 3.0.6

S3バケットの設定

バケットのアクセス許可の設定はブロックパブリックアクセス、バケットポリシー、オブジェクト所有者で行います。

ブロックパブリックアクセス

チェックボックスが4つ並んでいるUIのところです。
今回のユースケースでは新しいパブリックバケットポリシーまたはアクセスポイントポリシーを介して付与されたバケットとオブジェクトへのパブリックアクセスをブロックする任意のパブリックバケットポリシーまたはアクセスポイントポリシーを介したバケットとオブジェクトへのパブリックアクセスとクロスアカウントアクセスをブロックするにチェックをつけます。

バケットポリシー

次にJSONでバケットポリシーを設定します。
特定のIAMユーザーのみがバケットへアクセスできるようにします。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowIAMUserUpload",
            "Effect": "Allow",
            "Principal": {
                "AWS": "IAMユーザーのARN"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::バケット名/*"
        }
    ]
}

オブジェクト所有者

ACL有効にチェックをつけます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0