Edited at

CloudFront 経由で S3 のファイルにアクセスする


もくじ


  1. CloudFront 経由で S3 のファイルにアクセスできるようにする

  2. 独自ドメインで CloudFront にアクセスできるようにする

  3. CloudFront 経由の時だけ S3 のファイルにアクセスできるようにする


準備


  • S3に画像ファイルをアップロードしておく

  • 画像ファイルに公開する設定をしておく

  • ブラウザから画像ファイルのリンクにアクセスして画像が表示されることを確認しておく

種別
URL
アクセス可否

S3公開リンク

http://s3-<リージョン>.amazonaws.com/<バケット名>/<ファイル名>

CloudFrontドメイン
http://<ドメイン名>.cloudfront.net/<ファイル名>
未設定

独自ドメイン
http://<ドメイン名>/<ファイル名>
未設定


1. CloudFront 経由で S3 のファイルにアクセスできるようにする


設定:CloudFront

CloudFrontのコンソールでDistributionを作成する



Origin Domain NameにS3のバケットを指定する


補足:

テキストボックスをクリックすると選択候補のリストが表示される


StatusDeployedになるまで待つ


アクセス確認

ブラウザからCloudFrontドメインのURLにアクセスして、ファイルにアクセスできるようになったことを確認する

種別
URL
アクセス可否

S3公開リンク

http://s3-<リージョン>.amazonaws.com/<バケット名>/<ファイル名>

CloudFrontドメイン
http://<ドメイン名>.cloudfront.net/<ファイル名>

独自ドメイン
http://<ドメイン名>/<ファイル名>
未設定


2. 独自ドメインで Cloud Front にアクセスできるようにする


設定:CloudFront

CloudFrontのコンソールでDistribution設定を変更する



Altername Domain Nameにドメイン名を指定する


補足:

今回はファイルに「http://image.<独自ドメイン>/<ファイル名>」でアクセスできるように、

Altername Domain Nameにはimage.<独自ドメイン>を指定した







設定:Route53

Route53のコンソールでimage.<独自ドメイン>のレコードを作成する

Alias TargetにはCloudFrontのDistributionを指定する


補足:

テキストボックスをクリックすると選択候補のリストが表示される





アクセス確認

ブラウザから独自ドメインのURLにアクセスして、ファイルにアクセスできるようになったことを確認する

種別
URL
アクセス可否

S3公開リンク

http://s3-<リージョン>.amazonaws.com/<バケット名>/<ファイル名>

CloudFrontドメイン
http://<ドメイン名>.cloudfront.net/<ファイル名>

独自ドメイン
http://<ドメイン名>/<ファイル名>


3. Cloud Front 経由の時だけ S3 のファイルにアクセスできるようにする


設定:CloudFront

CloudFrontのコンソールでRestrict Bucket Accessを設定する










確認:S3

S3のコンソールでバケットポリシーが設定されてることを確認する


設定:S3

S3のコンソールでパブリックアクセスを禁止しておく


補足:

CloudFrontでRestrict Bucket Accessを設定しても、S3でパブリックアクセスが許可されていると公開リンクからファイルへアクセスすることが可能なため、上記の操作を行い準備で有効化した「公開する」設定を無効化する必要がある



アクセス確認

ブラウザからS3公開リンクにアクセスして、ファイルにアクセスできなくなったことを確認する

種別
URL
アクセス可否

S3公開リンク

http://s3-<リージョン>.amazonaws.com/<バケット名>/<ファイル名>
×

CloudFrontドメイン
http://<ドメイン名>.cloudfront.net/<ファイル名>

独自ドメイン
http://<ドメイン名>/<ファイル名>