【AWS】S3バケット作成


目的

AWSのS3を使用するためにバケットを作成する。

開発環境

macOS: Big Sur
Rubyバージョン: 2.6.5
Railsバージョン: 6.0.0

前提

  • AWSアカウントのルートユーザーIAMユーザーが作成されている。

手順

  1. はじめに
  2. S3とは
  3. バケットとは
  4. リージョンとは
  5. バケットの作成
  6. IAMユーザーの情報取得
  7. バケットポリシーの設定

はじめに

今回はS3を使用する前準備として、自分用の保存場所を作成していきます。

S3とは

AWSの中のサービスの1つであり、Simple Storage Serviceを略してS3と呼んでいます。

バケットとは

S3では自分用のデータを保存する場所のことをバケットと呼びます。

リージョンとは

S3に保存されたデータは実在の施設に分散して保管されています。
その実在の施設が所在している場所をリージョンといいます。

バケットの作成

それでは、実際にバケットを作成していきます!

この作業はルートユーザーのまま設定を進めます。
ルートユーザーではないと確認できない情報があるため、もしIAMユーザーでログインしている場合は、ルートユーザーにログインし直しましょう。

まず画面上部のメニューバーからサービスをクリックし、サービス一覧からS3を選択してS3ページを開きます。
その後バケットを作成を選択し、S3バケットのページに遷移します。

次にバケット名を入力し、リージョンがアジアパシフィック(東京)になっていることを確認します。
バケットの名前はアクセスするときのURLに使用されるため、英数字で、まだ誰も付けたことがない名前を使う必要があります。

画面を下にスクロールすると、アクセス許可の設定が表示されます。

今回はバケットポリシーというものを使用して、S3のセキュリティ対策を行います。
まずは、パブリックアクセスをすべてブロックのチェックを外し、画像のように3つのチェックボックスにチェックを入れます。
この設定が誤っているとファイルのアップロードができなくなってしまいます。

入力できたら、下にスクロールししましょう。
オプション設定が表示されますが、何も入力せず、バケットを作成をクリックしましょう。

ここまでで、バケットを作成することができました。

IAMユーザーの情報取得

次にバケットポリシーの設定をするため、IAMユーザーの情報を取得します。

まずIAMユーザーの情報を取得します。画面上部のメニューバーからサービスをクリックし、IAMページへ遷移します。
次に左のサイドバーからユーザーをクリックし、IAMユーザーページの作成したIAMユーザー名をクリックします。
ユーザー概要のページに遷移したあと、「ユーザーのARN」をコピーします。
この「ユーザーのARN」は後ほど使用します!

バケットポリシーの設定

次に、バケットポリシーの設定を行います。
バケットポリシーとは、バケットに対して、どのユーザーがどの処理をできるか取り決めをするものです。
今回は、IAMユーザーのみバケットにアクセスできるよう設定していきます。

画面上部のメニューバーからサービスをクリックし、サービス一覧からS3を選択します。
その後、先ほど作成したバケット名をクリックします。
次に、画面中央のアクセス許可をクリックし、バケットポリシー設定の、編集をクリックします。

そして、下記のバケットポリシーのコードをコピーし、「ポリシー」という入力欄に貼り付けます。

バケットポリシー
{
   "Version": "2012-10-17",
   "Id": "Policy1544152951996",
   "Statement": [
       {
           "Sid": "Stmt1544152948221",
           "Effect": "Allow",
           "Principal": {
               "AWS": "①"
           },
           "Action": "s3:*",
           "Resource": "arn:aws:s3:::②"
       }
   ]
}

次に、ユーザーによって異なる個別の情報を入力します。

「①」の箇所に、先ほどコピーした「ユーザーのARN」を入力します。
「②」の箇所に、作成したバケット名を入力します。

問題なければ画面下にスクロールして、「変更の保存」をクリックしましょう。
問題なくバケット作成ができれば成功です。

最後に

以上でバケットの作成は完了です。
次回はアプリに導入する方法を投稿します。【AWS】S3を用いた画像のアップロード
では。