概要
S3 への直接のアクセスを制限して CloudFront からのみ S3 のコンテンツを閲覧できるように設定します。
アクセスの制限には OAI (オリジンアクセスアイデンティティ) を使います。
今回、リージョンにバージニアを選択しています。
これは東京リージョンだと作成後 CloudFront のコンテンツ反映に時間がかかってしまう為です。
S3 の作成
まずは対象となる S3 バケットを作成します。
AWS へログインして S3 のコンソールを開いてください。
- 右上にある
バケットの作成
を選びます。 - 任意のバケット名を入力します。
- 任意のリージョンを選択します。(ここではバージニア北部)
- そのまま何も変更せず一番下のバケットの作成を選択します。
CloudFront の設定
以下、コンソールを使った CloudFront の設定方法です。
-
AWS へログインしたら CloudFront のコンソールを開きます。
-
Create Distribution
ボタンを選択します。 -
Select a delivery method for your content.
という画面に移動したら、Web
項目のGet Started
ボタンを選択します。 -
Create Distribution
という画面に移動するので、以下のように設定します。Origin Settings
のOrigin Domain Name
で先ほど作成した S3 バケットを選択します。Restrict Bucket Access
という項目がすぐ下に出てくるのでYes
にチェックを入れます。Origin Access Identity
のCreate a New Identity
にチェックを入れます。Grant Read Permissions on Bucket
のYes, Update Bucket Policy
にチェックを入れます。
-
その他の項目はデフォルトのまま一番下にある
Create Distribution
ボタンを選択します。
以上で完了です。
ディストリビューションの作成が完了するまで待つだけです。
アクセスしてみる
作成した CloudFront のディストリビューションにアクセスしてみます。
S3 に適当なファイルをアップロードしたら CloudFront のコンソールトップに記載のアドレスにアクセスし、ファイルを取得できるか確認してみましょう。
また、<BUCKET_NAME>.s3.amazonaws.com
経由でもアクセスしてみて、ファイルを取得できないことも確認してみてください。