AWS (S3)
S3で保存先の用意
ここからは、本番環境で投稿した画像を「S3」に保存できるようにしていきます。
バケット
S3で実際にデータが格納される場所のことを「バケット」と呼びます。バケットの名前はアクセスするときのURLに使用されるため、英数字で、まだ誰も付けたことがない名前を使う必要があります。
バケットは、名前とリージョンを決めるだけで簡単に作成できます。
リージョン
バケットが実際に存在しているサーバーの在り処のことです。
S3を利用してバケットを作成
上のメニューバーに表示されている「サービス」をクリック、以下の「S3」をクリックします。
すると以下のページに遷移するので、「バケットを作成」をクリックします。
遷移後の画面では、「バケット名」を入力しましょう。また、リージョンが「アジアパシフィック(東京)」になっていることを確認して、「次へ」をクリックします。
バケットの名前は任意で決めて大丈夫ですが、他のユーザーが作ったバケットと重複した名称は使えません。
遷移後の画面では何も選択せずに「次へ」をクリックしましょう。
続いてセキュリティの設定を行います。今回はバケットポリシーを使用してセキュリティ設定を行います。まずは、「パブリックアクセスをすべてブロック」のチェックを外しましょう。
チェックを外すと、追加でチェックボックスが表示されます。下記図に従って3つのチェックボックスにチェックを入れましょう。ここの設定が誤っているとファイルのアップロードができなくなるため注意しましょう。正しく設定できたら、「次へ」をクリックします。
最後の画面では、バケット作成の内容確認があります。内容に間違いがなければ、「バケットを作成」をクリックしましょう。
これからバケットポリシーの設定を行なっていきます。
バケットポリシー
どのようなアクセスに対してS3への保存やデータの読み取りを許可するか決められる仕組みです。今回は、作成したIAMユーザーからのアクセスのみを許可するようにします。
それでは実際に設定していきましょう。
まず、先ほど作成した「IAMユーザー」の設定を確認します。メニューの「サービス」をクリックします。
一覧から「IAM」を検索しましょう。
「ユーザー」を選択します。
「IAM」ユーザーの一覧から、先ほど作成したユーザーを選びます。
IAMユーザーの情報が表示されますので、必要な情報を取得します。 後ほど「ユーザーのARN」が必要になりますので、一度メモアプリなどに保存しておきましょう。
次に、バケットポリシーの設定を行います。IAMの時と同じようにサービス一覧から S3を選びます。先ほど作成したバケットをクリックしましょう。
「バケットポリシー」をクリックし、赤枠の欄にポリシーの入力をします。内容は下記を参照してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
先ほどメモしておいた 「ユーザーのARN」を①に、「作成したバケット名」を②に記述しましょう。
以下のような記述になっていることを確認して、保存しましょう。