0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Active Storageで投稿した画像をS3に入れようとしたら権限関係で詰まった話。

Posted at

AWSのS3に投稿された画像を保存できるようにしよとした時にかなり苦戦したのでそのお話をさせていただければと思います。
S3の権限については学習したはずなのにそのことについてすっかり忘れてしまっていたのでそのお話をさせていただければと思います。

まず、どうやってアクセス権限を得ることができるのかというと、

1つ目として、

EDITOR="vi" bin/rails credentials:edit

コマンドを使用してシークレットアクセスキーとアクセスキーを入れて環境変数を有効にするコマンドである

source ~/.zshrc

コマンドを打って環境変数を有効化します。

2つめは、S3のコンソールに行って

バケットからアクセス許可の項目に行っていただいて、そこにあるバケットポリシーにJSON形式でコードを書いて許可するやり方です。
私は以下のようにしてアクセスを許可しました。

それは、

{
    "Version": "2012-10-17",
    "Id": "Policy1544152951996",
    "Statement": [
        {
            "Sid": "Stmt1544152948221",
            "Effect": "Allow",
            "Principal": {
                "AWS": "IAMユーザーのARN"
            },
            "Action": [
                "s3:*",
                "s3:PutObjectAcl",
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": "バケットのARN/*"
        }
    ]

といった感じです。

ひとつひとつ見ていくと、Actionの項目に、PutとGetとDeleteの項目を許可するようにアクセス制限が組まれています。
これをしてあげることで、S3に対して投稿やその投稿されている画像等のファイルをWeb上に表示できる仕組みができました。
私はこれでつまずいていました。
なので、このようなことがないように備忘録として保存しておきます。
ありがとうございました。今回AWSがより一層好きになりました。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?