目的
AWSのS3を使用するためにバケット
を作成する。
開発環境
macOS: Big Sur
Rubyバージョン: 2.6.5
Railsバージョン: 6.0.0
前提
- AWSアカウントの
ルートユーザー
、IAMユーザー
が作成されている。
手順
はじめに
今回は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を用いた画像のアップロード
では。