【AWS】S3のバケットをパブリックにする方法

f:id:MDaiki:20200318015132p:plain 出典 : logo AWS -

自分で撮影した画像にurlを付与する方法を調べたのでその備忘録として書きます。

S3とは?

S3はaws(amazon web service)が提供しているサービスの1つです。ファイルサーバと言われていて、画像や書類を保存することができます。

bucket を借りる

S3ダッシュボードに移動する

検索画面で 「s3」 と検索し、s3ダッシュボードへ移動します。 f:id:MDaiki:20200318012013p:plain

S3バケットを作成する。

S3ダッシュボードに移動すると、 パケットを作成 という文字があるので、クリックしてください。 すると、下のような画面が出てきます。 f:id:MDaiki:20200318012605p:plain

  1. bucketの名前を決める。
    好きな名前で構いません。
  2. urlから画像を取得するためチェックを外す。
    ※②の設定は危険です。普段はチェックを外さないようにしましょう。

これで最下部の 「バケットを作成」 を押すとbucketを借りることができました。

S3をパブリックにするための設定

パケットポリシーの変更

自分が作成したバケットを選択し、 「アクセス権限」->「パケットポリシー」とクリックしてください。 すると下のような画像が出てくると思います。 f:id:MDaiki:20200318013922p:plain この画面で下記のテキストを記入してください。

※mybucketnameは自分が作成したバケット名に変えてください

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

これでS3がパブリックになりました。決して重要な画像や書類はアップロードしないでください。 適当な画像をアップロードすると、urlが取得できると思います。このurlを使用することで、誰にでも画像を共有することができます。

終わりに

APIサーバでユーザーのプロフィール画像をアップロードしurlに変換する機能を作成するときに、この方法を調べました。
goを使用した画像のアップロードやダウンロードはQiitaに記述しようと思います。
ありがとうございました。