概要
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 経由でもアクセスしてみて、ファイルを取得できないことも確認してみてください。