AWS構築手順S3作成

本章では、S3バケットの作成を行います。EC-TRIPでは、コンテンツ画像をS3バケットに保存します。他に、ログローテートで生成した過去のログファイルもS3バケットに保管しますが、ログについては後ほどの章にて記載します。

S3バケットの作成

  1. AWSコンソールにログインし、S3を表示します。そこから「バケットを作成する」をクリックします。 S3キャプチャ1
  2. EC-TRIPでは、バケットを2つ作成します。一つは画像などの公開コンテンツ、もう一つはログファイルなどの非公開コンテンツとします。本章で作成するのは画像用の公開バケットになります。 S3キャプチャ2
  3. プロパティの設定は特に選択せず、そのまま次へ進みます。 S3キャプチャ3
  4. 権限は、公開用のバケットなので、「このバケットにパブリック読み取りアクセス権限を付与する」を選択します。 その他はデフォルトのままとします。 S3キャプチャ4
  5. 確認後、問題なければ作成します。 S3キャプチャ5

S3用IAMの作成

次に、システムからS3バケットにアクセスするためのIAMを作成します。

  1. IAMダッシュボード→ポリシーを選択します(ユーザーを直接作成するのではなく、ポリシーを作成します) S3キャプチャ6
  2. 独自のポリシーを作成します。 S3キャプチャ7
  3. 作成するポリシーはS3へのアクセス専用としますが、バケットは限定しません(このポリシーを割り当てるIAMユーザー側で制御します)そこで、ポリシー名は漠然と「system-s3-access」といった値にしています。 S3キャプチャ8 ポリシードキュメントは以下の通りです(クラスメソッド様の記事を参考とさせていただきました)
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Action": ["s3:ListAllMyBuckets", "s3:GetBucketLocation"],
          "Effect": "Allow",
          "Resource": "arn:aws:s3:::*"
        },
        {
          "Action": "*" ,
          "Effect":"Allow",
          "Resource": [
            "arn:aws:s3:::${aws:username}",
            "arn:aws:s3:::${aws:username}/*"
          ]
        }
      ]
    }
    
  4. 続けてIAMユーザーを作成します。IAMユーザーを選択し、ユーザーを追加をクリックします。 S3キャプチャ9
  5. ユーザー名はS3バケット名と同じにする必要があります。ここでは「ec-trip-public」となります。
    また、アクセスの種類は「プログラムによるアクセス」のチェックをオンにします。 S3キャプチャ10
  6. アクセス権限は、先程作成したポリシーを利用するので、「既存ポリシーを直接アタッチ」を選択します。 S3キャプチャ11
  7. 確認し、問題なければ作成します。 S3キャプチャ12
  8. 作成すると、認証情報をcsvでダウンロードしておきます。この値を、後ほどの環境ファイル.envに記載します。 S3キャプチャ13

以上でS3バケットの設定は完了です。次章では、VPCを利用したプライベートネットワークの構築について記載していきます。