PowerCMS X + S3 + CloudFront で静的ウェブサイトホスティング 2(CloudFront篇)

前回は、S3 + CloudFront の静的ウェブサイトホスティングのS3を作成するところまで実施しました。
今回は、CloudFront経由でS3にアクセスできるように進めていきます。

AWSコンソールにログインして、検索窓から「CloudFront」で検索します。表示されたサービスの「CloudFront」にアクセスします。

AWSコンソールでCloudFrontを検索している画面

画面右にある「CloudFront ディストリビューションを作成」ボタンをクリックしてください。

CloudFront ディストリビューションを作成ボタンの様子

一番上の「オリジンドメイン」を選択すると前回作成したS3バケットが選択できますので選択してください。
そうすると、「名前」の部分も自動で入ります。

オリジンドメイン設定の様子

「S3バケットアクセス」の選択肢は、「はい、OAIを使用します」を選択します。

S3バケットアクセス設定の様子

あたらしいOAIを作成のダイアログが表出されます。テキスト欄はデフォルトのままで問題ありません。

あたらしいOAIを作成のダイアログ画面

バケットポリシーは、「はい、バケットポリシーを自動で更新します」にチェックします。

バケットポリシー設定の様子

下にスクロールして「デフォルトのキャッシュビヘイビア」の箇所に移動します。
ビューワープロトコルポリシーの箇所を「HTTP and HTTPS」から「Redirect HTTP to HTTPS」に変更します。
あとはデフォルトのままで問題ありません。

デフォルトのキャッシュビヘイビア設定の様子

関数の関連付けはデフォルトのままです。

関数の関連付け設定の様子

スクロールして設定に移動します。
「デフォルトルートオブジェクト」の部分に、「index.html」と入力してください。
あとはデフォルトのままで問題ありません。

デフォルトルートオブジェクト設定の様子

これで設定は完了です。「ディストリビューションを作成」をクリックして作成します。

ディストリビューションを作成ボタン

「新しいディストリビューションが正常に作成されました。」と表出されれば成功です。ディストリビューション一覧に戻りましょう。

新しいディストリビューションが正常に作成された様子

ステータスが有効となっていれば完了しています。
「ドメイン名」の部分に記載されているURLをコピーして、ブラウザのURL欄にペーストしてみてください。

ステータスの様子

前回作成したHTMLが表示されてますね!しかもhttps化されています。
これでCloudFront自体の設定は完了ですが、今のままだとS3のエンドポイントもアクセスできてしまいますので、S3への直接アクセスを禁止してCloudFront経由のみとします。

CloudFrontでHTMLにアクセス成功した様子

検索窓からS3を検索して、サービスのS3をクリックして移動します。

AWSコンソールでS3を検索している様子

「名前」欄をクリックして詳細に移動します。

S3バケット一覧

アクセス許可のタブをクリックし、「ブロックパブリックアクセス」の「編集」ボタンをクリックします。

アクセス許可のタブ画面

「パブリックアクセスをすべてブロック」にチェックを入れて、「変更の保存」をクリックします。

パブリックアクセス設定の様子

確認ダイアログが表出されるので「確認」を入力して「確認」ボタンをクリックします。

確認ダイアログ画面

バケットポリシーの「編集」ボタンをクリックします。

バケットポリシー設定画面

前回入力した内容のStatementにひとつ増えてますね。CloudFront ディストリビューション作成の際に、「バケットポリシーの自動更新」を選択したので、自動的に挿入されています。

ポリシーの中身表示

青い部分、前回入力したStatementの部分はS3に直接アクセスを許可している部分なので消してしまいます。

ポリシーの中身表示で前回作成した部分

sidが2となっているので、「CloudfrontGetObject」に変更してください。

ポリシー設定の様子

以下になっていればOKです。


{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "CloudFrontGetObject",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity *************"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::***********-website-html/*"
        }
    ]
}

「変更の保存」ボタンをクリックして保存します。

変更の保存ボタン

バケットの詳細に入って、プロパティタブに移動します。

バケットの一覧画面 プロパティタブの画面

一番下にスクロールして、静的ウェブサイトホスティング欄の「バケットウェブサイトエンドポイント」のURLをコピーして、ブラウザのURL欄にペーストして開いてください。

静的ウェブサイトホスティングの画面

403となれば成功です。

403がブラウザに表示されている様子

本日はここまでになります。お疲れさまでした。