本記事の概要につきましては大変お手数ですが 以下のブログをご参照ください
S3 に置いたコンテンツを CloudFront を利用 してインターネットに公開する方法まとめ
( A ) CloudFront のオリジンに Amazon S3 バケットを使用する方法
本記事で作成するのは以下の構成です
公式ドキュメントはお手数ですが以下をご参照ください
オリジンとしての Amazon S3 バケットの使用
Origin Access Control (OAC)
2022年8月に、OAI に代わる OAC という機能が出ました。 こちらも必ずご参照ください。本記事では OAI での構築を記していますが、これからの構築は OAC が推奨になります。
構築手順(OAI)
S3にバケットを作成しコンテンツを配置
[サービス]→[S3] の順にクリックします
[バケットを作成]をクリックします
[バケット名]に任意の文字列を入れて [バケットの作成]をクリックします ※ デフォルトで [パブリックアクセスをすべてブロック] のバケットになります
バケットが出来ました
トップページになる s3contents.html を作成しアップロードします
[次へ]を押します
[次へ]を押します
[次へ]を押します
[アップロード]を押します
アップロードできました
アップロードしたファイルの [オブジェクト URL] をブラウザで 確認してみます
アクセス不可となります
作成したバケットの[バケットポリシー]に何も入っていないことを確認します
CloudFront の作成
[サービス]→[CloudFront] の順にクリックします
[Create Distribution] をクリックします
[Web]セクションにある [Get Started] をクリックします
作成した S3 バケット をプルダウンから選択して入れます (bucket-name.s3.region.amazonaws.com)
[Restrict Bucket Access] を [Yes] に変更します ★重要
[Origin Access Identity] を [Create a New Identity] に変更します ★重要 また [Grant Read Permissions on Bucket] を [Yes, Update Bucket Policy] に変更します ★重要
他は変更せずに [Create Distribution] をクリックします
作成中になります
作成したディストリビューションを選択して [General] タブ にある [Edit] をクリックします
[Default Root Object] に アップロードしたファイルのファイル名を入れ [Yes, Edit] をクリックします ※ CloudFront のURL xxxx.cloudfront.net にアクセスした際にトップページになります
Origin Access Identity (確認のみ)
CloudFrontの左ペインにある [Origin Access Identity] を確認すると作成した [Origin Access Identity] があります
S3 バケット のバケットポリシーを確認してみると 上の [Origin Access Identity] のみからアクセスを許可する バケットポリシーに更新しています
確認
CloudFront のURL xxxx.cloudfront.net にアクセスしたところ無事開くことができました ( CloudFrontのステータスが "deployed" になってから 15分ほど待ちました ご注意ください )
HTTPS 化
通信の HTTPS 化 については以下に手順があります お手数ですがご参照ください
CloudFront と Amazon S3 オリジンとの間の通信で HTTPS を必須にする
以上