目的
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を用いた画像のアップロード
では。


